题解 | #字符串排序#

字符串排序

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

#include <iostream>
#include <vector>
using namespace std;
bool ischar(char c) {
    if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
        return true;
    else
        return false;
}
int main() {
    string s;
    getline(cin, s);
    int len = s.length();
    vector<int> nochar;
    vector<char> ischar1;
    for (int i = 0; i < len; i++) {
        if (!ischar(s[i])) {
            nochar.push_back(i);
        }

    }
    for (int j = 0; j < 26; j++) {
        for(int i=0;i<len;i++)
        {
        if (s[i] - 'a' - j == 0 || s[i] - 'A' - j == 0) {
            ischar1.push_back(s[i]);
        }
        }
    }
    for(int i=0,j=0,k=0;i<len;i++,j++,k++)
    {
        if (ischar(s[i])) {
        cout<<ischar1[k];
        j--;
        }
        else {
        cout<<s[nochar[j]];
        k--;
        }
    }

}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-23 14:10
码农索隆:成年人最直白的答复:已读不回
点赞 评论 收藏
分享
zYvv:双一流加大加粗再标红,然后广投。主要是获奖荣誉不够,建议开始不用追求大厂,去别的厂子刷下实习。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务