前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >7-2 英文单词排序 (25 分)

7-2 英文单词排序 (25 分)

作者头像
韩旭051
发布2019-11-08 10:02:00
2K0
发布2019-11-08 10:02:00
举报
文章被收录于专栏:刷题笔记

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/shiliang97/article/details/97651417

7-2 英文单词排序 (25 分)

本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。

输入格式:

输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。

输出格式:

输出为排序后的结果,每个单词后面都额外输出一个空格。

输入样例:

代码语言:javascript
复制
blue
red
yellow
green
purple
#

输出样例:

代码语言:javascript
复制
red blue green yellow purple 

很简单的一个小题,上来就用sort排序,第三个测试点死活过不去。。。?

错误代码

短短几行,却看不出那儿有?️‍♂️问题

找不到点,可真让人难受

代码语言:javascript
复制
#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(string a,string b){
	return a.size()<b.size();
}

int main(){
	string s;
	string s1[25];
	int i=0;
	cin>>s;
	while(s!="#"){
		s1[i]=s;
		i++;
		cin>>s;
	}
	sort(s1,s1+i,cmp);
	for(int a=0;a<i;a++){
		cout<<s1[a]<<" ";
	}
	return 0;
}

经过一番思考?(其实是问了别人之后)

我才知道sort排序是不稳定的,不能保证如果长度相同,按照输入的顺序不变。

既然这样,那么我就用冒泡排序了?

AC代码

代码语言:javascript
复制
#include<iostream>
using namespace std;
int main(){
	string s;
	string s1[25];
	int i=0;
	cin>>s;
	while(s!="#"){
		s1[i]=s;
		//cout<<s1[i]<<i<<endl;
		i++;
		cin>>s;
	}
	for(int a=0;a<i-1;a++){//sort 不稳定 试试冒泡
	 	for(int b=i-1;b>a;b--){
	 		if(s1[b-1].size()>s1[b].size()){
	 			s=s1[b];
	 			s1[b]=s1[b-1];
	 			s1[b-1]=s;
			 }
		 }
	 } 
	for(int a=0;a<i;a++){
		cout<<s1[a]<<" ";
	}
	return 0;
}

这道题别人都没遇到问题,就我直接整了sort就出问题了+

+既然都用sort了,那就贯彻到底吧。

后面就想了一个没啥用,但是sort也过去的代码

AC代码

代码语言:javascript
复制
#include<iostream>
#include<algorithm>
using namespace std;
struct s2{
	string s;
	int n;
};
bool cmp(s2 a,s2 b){
	return a.s.size()==b.s.size()?a.n<b.n:a.s.size()<b.s.size();
}

int main(){
	
	string s;
	s2 s1[25];
	int i=0;
	cin>>s;
	while(s!="#"){
		s1[i].s=s;
		s1[i].n=i;
		i++;
		cin>>s;
	}
	sort(s1,s1+i,cmp);
	for(int a=0;a<i;a++){
		cout<<s1[a].s<<" ";
	}
	return 0;
}

使用了结构体,一个存string一个存顺序,改了sort里的cmp,

过是过了,但是不太提倡,

通过这个题要记住sort它不稳定啊。。。一定要判断顺序。

(说明一定要了解多一丢丢比如sort,单知道他排序就不行,还有冒泡我很长时间没✍写了,写的时候我还查了资料。。。)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 7-2 英文单词排序 (25 分)
    • 输入格式:
      • 输出格式:
        • 输入样例:
          • 输出样例:
            • 很简单的一个小题,上来就用sort排序,第三个测试点死活过不去。。。?
              • 错误代码
                • 短短几行,却看不出那儿有?️‍♂️问题
              • 经过一番思考?(其实是问了别人之后)
                • 这道题别人都没遇到问题,就我直接整了sort就出问题了+
                • +既然都用sort了,那就贯彻到底吧。
                • 后面就想了一个没啥用,但是sort也过去的代码
            • 我才知道sort排序是不稳定的,不能保证如果长度相同,按照输入的顺序不变。
            • 既然这样,那么我就用冒泡排序了?
            • AC代码
            • AC代码
              • 使用了结构体,一个存string一个存顺序,改了sort里的cmp,
                • 过是过了,但是不太提倡,
                  • 通过这个题要记住sort它不稳定啊。。。一定要判断顺序。
                    • (说明一定要了解多一丢丢比如sort,单知道他排序就不行,还有冒泡我很长时间没✍写了,写的时候我还查了资料。。。)
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档