把一个字符串的大写字母放到字符串的后面--腾讯2017暑期实习生编程题
2016-08-28 15:32
316 查看
小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
你能帮帮小Q吗?
输入描述:
输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.
输出描述:
对于每组数据,输出移位后的字符串。
输入例子:
输出例子:
解法:
#include<cstdio>
#include<cstring>
bool isCapital(char ch)
{
if(ch>='A'&&ch<='Z')
{
return true;
}
return false;
}
int main()
{
char str[1001];
while(scanf(" %s",str)!=EOF)
{
int len=strlen(str);
int num_Of_Judged=0;//判断过的字符数
for(int i=0;i<len&&num<len;)
{
if(isCapital(str[i]))
{
char ch=str[i];
for(int j=i+1;j<len;j++)
{
str[j-1]=str[j];
}
str[len-1]=ch;
}
else
{
i++;//因为将大写字母抽出后,其他字符前移,移动后的字符串的第i个位置仍可能为大写字母
}
isCapital++;//判断过的字符数为len时表示全部字符判断完成
}
printf("%s\n",str);
}
}
你能帮帮小Q吗?
输入描述:
输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.
输出描述:
对于每组数据,输出移位后的字符串。
输入例子:
AkleBiCeilD
输出例子:
kleieilABCD
解法:
#include<cstdio>
#include<cstring>
bool isCapital(char ch)
{
if(ch>='A'&&ch<='Z')
{
return true;
}
return false;
}
int main()
{
char str[1001];
while(scanf(" %s",str)!=EOF)
{
int len=strlen(str);
int num_Of_Judged=0;//判断过的字符数
for(int i=0;i<len&&num<len;)
{
if(isCapital(str[i]))
{
char ch=str[i];
for(int j=i+1;j<len;j++)
{
str[j-1]=str[j];
}
str[len-1]=ch;
}
else
{
i++;//因为将大写字母抽出后,其他字符前移,移动后的字符串的第i个位置仍可能为大写字母
}
isCapital++;//判断过的字符数为len时表示全部字符判断完成
}
printf("%s\n",str);
}
}
相关文章推荐
- 一个关于if else容易迷惑的问题
- 一道sql面试题附答案
- C# 超高面试题收集整理
- 14 个折磨人的 JavaScript 面试题
- 人人网javascript面试题 可以提前实现下
- JS面试题---关于算法台阶的问题
- PHP中设置一个严格30分钟过期Session面试题的4种答案
- 据说是雅虎的一份PHP面试题附答案
- php牛逼的面试题分享
- 一套比较完整的javascript面试题(部分答案)
- 10个经典的Java main方法面试题
- 小米公司JavaScript面试题
- 超级全面的PHP面试题整理集合第1/2页
- 极易被忽视的javascript面试题七问七答
- 5个实用的shell脚本面试题和答案
- PHP经典面试题集锦
- 8个PHP数组面试题
- 高级MySQL数据库面试问题 附答案
- PHP中提问频率最高的11个面试题和答案
- 用PHP解决的一个栈的面试题