小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。 你能帮帮小Q吗?
2016-08-19 16:42
441 查看
小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
你能帮帮小Q吗?
[b]输入描述:[/b]
输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.
[b]输出描述:[/b]
对于每组数据,输出移位后的字符串。
[b]输入例子:[/b]
AkleBiCeilD
[b]输出例子:[/b]
kleieilABCD
#include<string> #include<iostream> using namespace std; void move(string &str) { for(int i=str.size()-1;i>=0;i--) { if(str[i]>='A'&&str[i]<='Z') continue; else { int begin=i; while(str[begin]>='a'&&str[begin]<='z'&&begin>=0) { begin--; } if(begin>=0) { char ch=str[begin]; for(int j=begin+1;j<=i;j++) { str[j-1]=str[j]; } str[i]=ch; } } } } int main() { string str; while(cin>>str) { move(str); cout<<str<<endl; } }
相关文章推荐
- 字符移位 小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。 你能帮帮小Q吗? 输入描述: 输入数据有多组
- 腾讯2017年实习生编程题目(第二题)----2.算法基础-字符移位 小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
- [面试算法]把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。
- 把一个字符串的大写字母放到字符串的后面 ,各个字符的相对位置不变,不能申请额外的空间
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间
- 将一个字符串的大写字母放到字符串的后面,各个字符串的相对顺序不改变,不能申请额外空间 左旋字符串的应用
- 把一个字符串中的大写字母放到后面,小写字母放到前面,并且相对位置不变
- 在一个字符串中把大写字母放到字符串中小写字母的后面(不能改变字母的相对位置)
- 不申请额外空间调整字符串大小写顺序,大写字母依次放到后面
- 设计算法并写出代码移除字符串中重复的字符,不能使用额外的缓存空间。注意: 可以使用额外的一个或两个变量,但不允许额外再开一个数组拷贝。
- 将一个字符串中的大写字母放到小写字母的后面,而且移动后相对顺序不改变
- 实现一个算法来判断一个字符串中的字符是否唯一(即没有重复).不能使用额外的数据结构。 (即只使用基本的数据结构)