腾讯 算法基础-字符移位
小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
你能帮帮小Q吗?
输入描述:
输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.
输出描述:
对于每组数据,输出移位后的字符串。
输入例子:
AkleBiCeilD
输出例子:
kleieilABCD
#include <stdio.h>
#include <string.h>
//冒泡排序
int main() {
char str[1001];
while (scanf("%s", str) != EOF) {
int len = strlen(str);
for (int i = len - 1; i >= 0; --i) {
if (str[i] >= "A" && str[i] <= "Z") {
char ch = str[i];
int j = i + 1;
while (str[j] != " " && str[j] >="a" && str[j] <= "z") {
str[j - 1] = str[j];
++j;
}
str[j - 1] = ch;
}
}
printf("%s
",str);
}
return 0;
}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: [字符串] 一个巧妙的字符串循环移位法
- 下一篇: 《剑指Offer》面试题:对字符串进行循环左移