愿尔安然无恙


私信TA

用户名:H2130819045

访问量:13763

签 名:

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

等  级
排  名 63
经  验 10710
参赛次数 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分

1 人评分

  评论区

  • «
  • »