华为机试在线训练_字符串排序(字符串)
字符串排序
http://www.nowcoder.com/questionTerminal/5190a1db6f4f4ddb92fd9c365c944584
/*
本文系「人工智能安全」(微信公众号)原创,转载请联系本文作者(同博客作者)。
欢迎你转发分享至朋友圈,并给予「关注、星标、点赞」三连支持。互相欣赏,互相批判。
我是一名有诗人气质的网络安全工程师
期待与你的思想交流碰撞出智慧的花火
水木清华
2020-03-16
字符串排序
*/
#include <iostream>
#include <vector>
using namespace std;
string String_Sorting(string str)
{
int len = str.size(); //获取字符串长度
vector <char> vec; //用一个 char 型的向量存储按规则排序后的字符串中的字母字符
//规则一:英文字母从 A 到 Z 排列,不区分大小写。
//规则二:同一个英文字母的大小写同时存在时,按照输入顺序排列。
for (int j = 0; j < 26; j++)
{
for (int i = 0; i < len; i++)
{
if ((str[i] - 'a' == j) || (str[i] - 'A' == j))
{
vec.push_back(str[i]); //将符合规则的字母字符先后写入向量
}
}
}
//规则三:非英文字母的其它字符保持原来的位置。
for(int i = 0,k = 0;(i < len) && (k < vec.size()); i++)
{
if((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z'))
{
str[i] = vec[k++];
}
}
return str; //返回按规则排序好后的字符串
}
//主函数
int main()
{
string str;
while (getline(cin, str))
{
cout << String_Sorting(str) << endl;
}
return 0;
}大厂面试 文章被收录于专栏
分享有用的面试经历,倾吐有心的面试感悟,讲述有趣的面试故事,以飨读者。 常用语言是C++,编程力求规范整洁,题解清晰完整,像写诗一样去写代码。 本专栏文章系「人工智能安全」(微信公众号)原创,转载请联系本文作者。 欢迎你转发分享至朋友圈,并给予「关注、星标、点赞」三连支持。互相欣赏,互相批判。 我是一名有诗人气质的网络安全工程师,期待与你的思想交流碰撞出智慧的花火。
字节跳动公司福利 1297人发布