题目描述:
小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
你能帮帮小Q吗? 输入描述 :输入数据有多组,每组包含一个字符串s,且保证:1 <= s.length <= 1000.
输出描述 :
对于每组数据,输出移位后的字符串。
输入例子1 :AkleBiCeilD输出例子1 :
kleieilABCD
解题思路:
将大写字母后置就行,也可以用冒泡排序法。
代码实现:
#include#include using namespace std;int main(){ string s; while (cin >> s) { size_t n = s.size(); int uper = 0; for (auto a : s)//统计大写字母个数, if (a <= 'Z'&&a >= 'A') uper++; for(int i = 0;i = 'A')//将大写字母向后挪 { char c = s[i]; for (int j = i; j < n - 1; ++j) s[j] = s[j + 1]; s[n - 1] = c; if (--uper == 0) break; } else i++; } cout << s << endl; } system("pause"); return 0;}
小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。你能帮帮小Q吗?
输入描述 :输入数据有多组,每组包含一个字符串s,且保证:1 <= s.length <= 1000.输出描述 :对于每组数据,输出移位后的字符串。输入例子1 :AkleBiCeilD输出例子1 :kleieilABCD