01排序
2015-09-08 12:15
197 查看
给定一个01串(仅由‘ 0’或‘1’组成的字符串),现在想把这个数字串排序成“非递减”有序序列,请问至少需要多少次交换(任意两个位置交换)?
输入描述:
输出描述:
输入例子:
输出例子:
输入描述:
输入数据第一行是一个正整数T(T<=100),表示有T组测试数据; 接下来的T行,每行给出01串。 数据保证—— 50%的字符串长度在[1,100 ] 95%的字符串长度在[1,10000] 100%的字符串长度在[1,1000000]
输出描述:
对于每组测试数据,请输出排成“非递减有序序列”的最小交换次数。 每组输出占一行。
输入例子:
3 01 10 110
输出例子:
0 1 1
#include <cstdio> #include <cstring> #include <cstdlib> #include <algorithm> #include <iostream> #define N 1001000 using namespace std; int i,j,k,m,n; char s ; int main() { int t; scanf("%d",&t); while (t--) { scanf("%s",s+1); n=strlen(s+1); i=1; j=n; int ans=0; while (i<j) { while(i < j && s[i] == '0') i++; while(i < j &&s [j]=='1') j--; if(i < j) { ans++; i++; j--; } } cout<<ans<<endl; } return 0; }
相关文章推荐
- Oracle 触发器 插入,更新,删除,数据同步,两表同步
- 计算机网络相关面试题
- 使用xampp搭建phpcms运行环境
- react-native试玩(27)-上拉菜单API
- View 绘制机制
- WIN phone 8.1 SDK 坑遇到 Hyper-V
- Apple Watch开发了一些细节和总结
- WPF ItemsControl 控件支持鼠标滚轮滑动
- 斐波那契数列
- !function(),+function()
- SVN状态图标消失的解决办法
- Memcached和Memcache安装(64位win7)
- 部分浏览器上a标签包裹的dom元素显示不正常
- 如何监控ActiveMQ
- 简单 python爬虫 <2>
- 交换、路由与防火墙手记(4)
- 学习排序算法
- LeetCode 219. Contains Duplicate II
- leetCode #144 Binary Tree Preorder Traversal
- dota war3map.j 解读