3729:用set实现字符串的排序和查找

总时间限制: 1000ms 内存限制: 65536kB
描述
输入若干只包含数字的字符串,要求按它们被看作整数时的大小排序,并以从大到小的顺序输出。重复的字符串只能留下一个。

接下来,查找某些给定的字符串是否是前面输入的某个串。

如果两个字符串被看作整数时值相同,则短的排前面。

字符串最多有400个字符,但它被看作一个整数时,其值是不超过 int 的表示范围的(即可能有大量多余的前导0)

不考虑空串
输入
第一部分是若干待排序的字符串(不超过 30000行), 以一行"END"结束。

接下来是若干行要查找的字符串 ,同样以 “END” 结束
输出
先将第一部分的待排序字符串按前述规则排序输出,一个字符串一行
然后输出一行"END",表示以下是查找结果
对于每个待查找的字符串,输出一行查找结果。如果该字符串是第一部分中的一个,则查找结果为该字符串后跟着" found";
如果该字符串是第一部分中的一个,则查找结果为该字符串后跟着" not found";

样例输入
0000
000
01
02
1
21
00001234
01234
5678
1234
1234
21
END
5876
1234
123
2
02
0
END
样例输出
5678
1234
01234
00001234
21
02
1
01
000
0000
END
5876 not Found
1234 found
123 not Found
2 not Found
02 found
0 not Found
提示
编写函数对象类的 operator() 成员函数时,最好将其写为 const 函数,否则容易出错
来源
Guo Wei

问题链接:Bailian3729 用set实现字符串的排序和查找
问题简述:(略)
问题分析:(略)
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C++语言程序如下:

/* Bailian3729 用set实现字符串的排序和查找 */#include <iostream>
#include <algorithm>
#include <map>
#include <cstdlib>using namespace std;const int N = 30000 + 1;
struct Node {string s;int num, len;
} r[N];
map<string, int> mp;bool cmp(Node x, Node y)
{return x.num == y.num ? x.len < y.len : x.num > y.num;
}int main()
{int cnt = 0;while (cin >> r[cnt].s && r[cnt].s != "END") {mp[r[cnt].s]++;r[cnt].num = atoi(r[cnt].s.c_str());r[cnt].len = r[cnt].s.length();cnt++;}sort(r, r + cnt, cmp);cout << r[0].s << endl;for (int i = 1; i < cnt; i++)if (r[i].s != r[i - 1].s)cout << r[i].s << endl;cout << "END" << endl;string s;while (cin >> s && s != "END")cout << s << ' ' << (mp[s] ? "found" : "not Found") << endl;return 0;
}

Bailian3729 用set实现字符串的排序和查找【文本处理】相关推荐

  1. 使用qsort()和bsearch()函数对值和字符串进行排序和查找

    2019独角兽企业重金招聘Python工程师标准>>> #include <stdio.h> #include <stdlib.h> #define MAX ...

  2. N诺刷题——字符串、排序、查找、链表

    字符串类问题 1014加密算法 简单,过 1012字符移动 原做法 借助了两个字符串 #include<iostream> #include <string> #include ...

  3. C++基础-字符串的排序与查找案例(查找姓名位置)

    将若干个姓名按照字典序重新排列,然后从中找一个名字,输出所在位置. #include <iostream> using namespace std; #include <cstrin ...

  4. java list字符排序吗_List中存放字符串进行排序

    package com.bjpowernode.t03sort; import java.util.ArrayList; import java.util.Collections; /* * List ...

  5. boost::sort模块实现spreadsort 字符串函子排序示例

    boost::sort模块实现spreadsort 字符串函子排序示例 实现功能 C++实现代码 实现功能 boost::sort模块实现spreadsort 字符串函子排序示例 C++实现代码 #i ...

  6. C语言字符串左右排序交换

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105164028 C ...

  7. python 字符串比较忽略大小写的方法_python实现忽略大小写对字符串列表排序的方法...

    本文实例讲述了python实现忽略大小写对字符串列表排序的方法,是非常实用的技巧.分享给大家供大家参考.具体分析如下: 先来看看如下代码: string = ''' the stirng Has ma ...

  8. SQL对字符串进行排序

    SQL对字符串进行排序 假设字符串中只由'A'.'B'.'C'.'D'组成,且长度为7.并设函数REPLICATE(<字符串>,<n>)可以创建一个<字符串>的n个 ...

  9. java把abcedf字符串进行排序_字符串合并处理 - 一贱书生的个人空间 - OSCHINA - 中文开源技术交流社区...

    题目描述 按照指定规则对输入的字符串进行处理. 详细描述: 将输入的两个字符串合并. 对合并后的字符串进行排序,要求为:下标为奇数的字符和下标为偶数的字符分别从小到大排序.这里的下标意思是字符在字符串 ...

最新文章

  1. mysql 内连接查询慢_MySQL慢查询有2个内连接
  2. 如何访问自定义键值的二维数组
  3. 必须对手机内置业务制定规范防止后门
  4. [Office 2010 易宝典]怎样直接将Office文档保存为PDF格式?
  5. 本教程针对HBuilder5.0.0,制作日期2014-12-31(从HBuilder工具上获得)
  6. java期末试题c卷,JAVA程序设计期末考试试卷及参考答案
  7. [机器学习-总结] 什么是准确率, 精确率,召回率和(精确率和召回率的调和平均)
  8. Android将ScrollView移动到最底部
  9. 【算法】组合数学——排列数生成算法详解(一)
  10. Linux下文件操作命令cat(转)
  11. 关于IplImage中widthstep的大小与width,nchannels等的关系的问题_widthstep
  12. Git 补丁Apply Patch是干啥的?
  13. 一文看清Libra全景(超长22000字,慎点)
  14. 每月一书(202106):《刻意练习》(一万小时定律正确吗)
  15. 解决电脑本地网络连接显示红叉又可上网问题
  16. 简单的python抢红包脚本-Python自动抢红包,超详细教程,再也不会错过微信红包了...
  17. ReactDOM.render(...) 渲染方法
  18. C语言 冒泡法排序,选择法排序和插入排序
  19. Java 数字金额,字符串格式化
  20. Android入门教程 (一) Android简介和android studio安装

热门文章

  1. 5年赚50倍的段永平:这几家公司正在长长的坡上滚着厚厚的雪
  2. php smarty配置文件,Smarty配置文件
  3. Windows下编译扩展OpenCV 3.1.0 + opencv_contrib
  4. 计算机一级考试表格题2010,2010年计算机一级考试一级WINDOWS笔试模拟题及答案
  5. git忽略文件或者文件夹
  6. 网络映射连接不上_Mac连接不上无线网络的解决方法
  7. SpringBoot+Vue项目上手
  8. Spark on Yarn查看删除日志
  9. clock函数的时间单位_【CUDA 基础】2.2 核函数计时
  10. JDBC的数据库的基础事务管理