腾讯校招编程题——算法基础-字符移位

来源:互联网 发布:期货数据网 编辑:程序博客网 时间:2024/05/22 12:39
[编程题] 算法基础-字符移位
小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
你能帮帮小Q吗?



输入描述:

输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.



输出描述:

对于每组数据,输出移位后的字符串。


输入例子:
AkleBiCeilD


输出例子:

kleieilABCD

其实很简单,只要遇到大写字母,就把它扔到末尾去就ok~~
#include<bits/stdc++.h>using namespace std;char c[1005];int main(){    while(~scanf("%s",c))    {        int len=strlen(c);        int num=0;        for(int i=0;i<len;i++)        {            if(c[i]>='A'&&c[i]<='Z')            {                num++;            }        }        for(int i=0; i<len; i++)        {            while(c[i]>='A'&&c[i]<='Z'&&num-->0)            {                for(int j=i; j<len-1; j++)                {                    c[j]=c[j]^c[j+1];                    c[j+1]=c[j]^c[j+1];                    c[j]=c[j]^c[j+1];                }            }        }        puts(c);    }    return 0;}



输出例子:

kleieilABCD

0 0
原创粉丝点击