把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间
2013-03-15 14:19
267 查看
例如AbcDeFGhi ->bceiADFG
这道题目是今年腾讯的面试题,我的想法是基于冒泡的思想,从头开始扫描,遇到小写字母就往前面冒
初始:AbcDeFGhi
冒'b': bAcDeFGhi
冒'c': bcADeFGhi
冒'e': bceADFGhi
冒'h': bcehADFGi
冒'i': bcehiADFG
得到最终结果为bceiADFG
最终代码如下
这道题目是今年腾讯的面试题,我的想法是基于冒泡的思想,从头开始扫描,遇到小写字母就往前面冒
初始:AbcDeFGhi
冒'b': bAcDeFGhi
冒'c': bcADeFGhi
冒'e': bceADFGhi
冒'h': bcehADFGi
冒'i': bcehiADFG
得到最终结果为bceiADFG
最终代码如下
#include <stdio.h> #include <string.h> int main() { char s[1000], t; int i, j; while (scanf("%s", s) != EOF) { for (i = 1; i < strlen(s); ++i) { j = i; if ('a' <= s[i] && s[i] <= 'z') while (j != 0 && 'A' <= s[j-1] && s[j-1] <= 'Z') { t = s[j-1]; s[j-1] = s[j]; s[j--] = t; } } printf("%s\n", s); } return 0; }
相关文章推荐
- [面试算法]把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间
- 腾讯2017年实习生编程题目(第二题)----2.算法基础-字符移位 小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
- 字符移位 小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。 你能帮帮小Q吗? 输入描述: 输入数据有多组
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
- 小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。 你能帮帮小Q吗?
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间
- 把一个字符串的大写字母放到字符串的后面 ,各个字符的相对位置不变,不能申请额外的空间
- 将一个字符串的大写字母放到字符串的后面,各个字符串的相对顺序不改变,不能申请额外空间 左旋字符串的应用
- 把一个字符串中的大写字母放到后面,小写字母放到前面,并且相对位置不变
- 在一个字符串中把大写字母放到字符串中小写字母的后面(不能改变字母的相对位置)
- 不申请额外空间调整字符串大小写顺序,大写字母依次放到后面
- 将一个字符串中的大写字母放到小写字母的后面,而且移动后相对顺序不改变
- 设计算法并写出代码移除字符串中重复的字符,不能使用额外的缓存空间。注意: 可以使用额外的一个或两个变量,但不允许额外再开一个数组拷贝。
- 26.在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置