愿尔安然无恙


私信TA

用户名:H2130819045

访问量:12410

签 名:

向往星辰大海,喜欢落日晚风。

等  级
排  名 59
经  验 10496
参赛次数 16
文章发表 56
年  龄 20
在职情况 学生
学  校 贺州学院
专  业 软件工程

  自我简介:

不想改bug ^_^

解题思路:

string类的substr函数求出子串,放入set容器自动排序,定义迭代器遍历即可;

注意事项:

cout输出会超时,用c_str函数转化为C风格的字符串(迭代器类似于指针,需要“->”去访问,而不是点运算符‘.’),再用printf输出;


参考代码:

#include <iostream>
#include <set>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
	set<string> st;
	string str,temp;
	while(cin>>str)
	{
		temp="";
		int len=str.length();
		for(int i=0;i<len;i++)
		{
			temp=str.substr(i,len-i);//sonstr的start,length
			st.insert(temp);
		}
		set<string>::iterator it;//定义迭代器
		for(it=st.begin();it!=st.end();it++)
		{
			printf("%s\n",it->c_str());//string类的迭代器转化为C风格的字符串 
		}
		st.clear();//清空容器
	}
	return 0;
}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答

代码解释器

  评论区