题解 | #字符串排序#

字符串排序

https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584

#include <iostream>
#include<string>
#include<queue>
using namespace std;

int main() {
    string s;
    while (getline(cin,s)) { // 注意 while 处理多个 case
        queue<char> arr[26];
        for(int i=0;i<s.size();i++)
        {
            if(('a'<=s[i])&&(s[i]<='z'))
            {
                arr[s[i]-'a'].push(s[i]);
            }
            if(('A'<=s[i])&&(s[i]<='Z'))
            {
                arr[s[i]-'A'].push(s[i]);
            }
        }
        for(int i=0;i<s.size();i++)
        {
            if((('a'<=s[i])&&(s[i]<='z'))
            ||(('A'<=s[i])&&(s[i]<='Z')))
            {
                for(int j=0;j<26;j++)
                {
                    if(!arr[j].empty())
                    {
                        s[i]=arr[j].front();
                        arr[j].pop();
                        break;
                    }
                }
            }
        }
        cout<<s<<endl;
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

头像
04-02 20:00
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务