一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情。
题目描述
这是一道在牛客上面的常见输入输出类型的题目,题目链接:ac.nowcoder.com/acm/contest… 对输入的字符串进行排序后输出
输入描述
多个测试用例,每个测试用例一行。 每行通过,隔开,有n个字符,n<100
输出描述
对于每组用例输出一行排序后的字符串,用','隔开,无结尾空格
限制
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld
示例
输入
a,c,bb
f,dddd
nowcoder
输出
a,bb,c
dddd,f
nowcoder
分析
题目的输入描述为多个测试用例,每个测试用例一行。说明输入的一行测试用例为一个字符串,用逗号前后隔开的为单词。关键是对单词进行排序输出,题目的输出要求是对单词进行字典排序,即按照a,b,c等顺序排序。输入输出都比较好理解,关键是怎么来处理这个字符串。因为输入的是字符串,我们可以对字符串进行一些操作如拼接成我们要的单词。具体代码实现可以参考下面的。 及
C++代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
string str;
while(cin>>str){
string temp="";//定义一个临时的空字符串
vector<string> vec;//定义一个字符串类型的向量容器
for(int i=0;i<str.size();++i){//循环遍历字符串
if(str[i]==','){//检测字符是不是逗号
vec.push_back(temp);//如果是逗号将temp的值存入向量容器中
temp="";//将temp重新赋值为空字符串
}else{
temp+=str[i];//如果不是逗号将当前字符放入temp字符串末尾
}
}
vec.push_back(temp);//将最后一个单词存入向量容器中,因为最后一个单词后面没有逗号
sort(vec.begin(),vec.end());//对向量容器中的元素排序
for(int i=0;i<vec.size()-1;++i){//循环遍历向量容器中的元素
cout<<vec[i]<<",";//输出容器中的元素
}
cout<<vec[vec.size()-1]<<endl;//输出最后一个容器中的元素,题目要求最后一个单词后面没有逗号,所以单独输出。
}
return 0;
}