string操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37393514/article/details/78237399

题目描述:把一个字符串只含有0和1,求把这个串排成非递减次序的串的最少的步数

输入:

4

01

10

110

11010

输出:

0

1

1

2

#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main()
{
	int n;
	cin >> n;
	while (n--)
	{
		string tmp;
		cin >> tmp;
		int s = 0;
		int cnt = 0;
		int e = tmp.length() - 1;
		while (s < e)
		{
			while (tmp[s] == '0'&&s<e)
				s++;
			while (tmp[e] == '1'&&s < e)
				e--;
			if (s < e)
			{
				cnt++;
				char c = tmp[s];
				tmp[s] = tmp[e];
				tmp[e] = c;
				s++;
				e--;
			}
		}
		cout << cnt << endl;
	}
	return 0;
}



阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页