美文网首页
字符移位(C++)

字符移位(C++)

作者: AlwaysFrank | 来源:发表于2016-09-17 19:06 被阅读0次

    题目:

    小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
    你能帮帮小Q吗?

    输入描述:

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

    输出描述:

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

    输入例子:

    AkleBiCeilD

    输出例子:

    kleieilABCD

    冒泡的思想

    #include <iostream>
    #include <string>
    using namespace std; 
    int main()
    {
        string s;
        while(cin>>s)
        {
            int l=s.size();
            int up=0;
            int low=0;
            //这个是为了减少冒泡的次数
            for(int i=0; i<l; ++i)
            {
                if(s[i]>='a'&&s[i]<='z')
                {
                    ++low;
                }
                else if(s[i]>='A' &&s[i]<='Z')
                {
                    ++up;
                }
            }//end of for
            for(int i=l-1; i>=low; --i)
            {
                for(int j=0; j<=i; ++j)
                {
                    if(s[j]>='A'&&s[j]<='Z'&&s[j+1]>='a'&&s[j+1]<='z')
                    {
                        char t=s[j];
                        s[j]=s[j+1];
                        s[j+1]=t;
                    }
                }
            }
            cout<<s<<endl;
        }
        return 0;
    }
    
    

    相关文章

      网友评论

          本文标题:字符移位(C++)

          本文链接:https://www.haomeiwen.com/subject/xclwettx.html