3021. 字符排序

10175102128
void solve() {
    vector<char*> alpha;
    string line;
    getline(cin, line);
    for (auto &e : line)
        if (isalpha(e))
            alpha.push_back(&e);
    for (int i = 0; i < alpha.size(); i++)
        for (int j = i+1; j < alpha.size(); j++)
            if (*alpha[i] > *alpha[j])
                swap(*alpha[i], *alpha[j]);
    cout << line << endl;
}
Deuchie

我的想法和 @10175102128 比较像。另外他启发了我,以后可以只发核心代码,不然太冗余了。

string str; getline(cin, str);
vector<char> vec;
for (auto ch : str)
        if (isupper(ch))
                vec.push_back(ch);
sort(vec.begin(), vec.end());
uint32_t i = 0;
for (auto ch : str)
    putchar(isupper(ch) ? vec[i++] : ch);
putchar('\n');
lnu_cxn

int main() {
string s;
int t, count = 0;
cin >> t;
getchar();
while (t–) {
getline(cin, s);
int len = s.size();
for(int i=0;i= ‘A’ && s[i] > s[j] && s[j] <= ‘Z’ && s[j] >= ‘A’) {
char temp = s[i];
s[i] = s[j];
s[j] = temp;
}
cout << “case #” << count++ << “:\n” << s << endl;
}
return 0;
}

lnu_cxn

粘窜行了

zzpzbl

用c的话好像还只能gets,fgets自动加了个换行,就会导致结果不对

你当前正在回复 博客/题目
存在问题!