騰訊校招編程題——算法基礎-字符移位

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/gxh27954/article/details/68947848
[編程題] 算法基礎-字符移位
小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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章