牛客网&&华为机试&&字符串排序
代码实现
#include<iostream>
#include<string>
#include<vector>
#include<cctype>
using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;
int main()
{
string str;
string result;
int len = 0;
while (getline(cin, str))
{
len = str.size();
for (int j = 0; j < 26; ++j) //实现规则1与规则2
{
for (int i = 0; i < len; ++i)
{
if (str[i] == 'A' + j || str[i] == 'a' + j)
result = result + str[i];
}
}
for (int i = 0; i < len; ++i) //实现规则3
{
if (!isalpha(str[i]))
{
/*
string temp1 = result;
string temp2 = result;
temp1 = temp1.substr(0, i);
temp2 = temp2.substr(i);
result = temp1 + str[i] + temp2;
*/
result.insert(result.begin()+i, str[i]);
}
}
cout << result << endl;
result.clear();
str.clear();
}
return 0;
}
编程笔记
- 代码实现解题思路:只需要按照题意处理字符串。
- 熟悉使用STL函数。