检索关键字 nyoj
检索关键字
64位整型: Java 类名:
没有
难度
lv.1
lv.2
lv.3
lv.4
lv.5
lv.6
lv.7
lv.8
lv.9
lv.10
搜索
数据结构
动态规划
STL练习
高精度计算
图论
几何
数学
矩阵计算
入门题目
字符串
博弈论
添加
题目描述
有一些关键字,现在给你一个字符串,请你根据此字符串,将关键字根据相关关系排列方便检索。1
字符串长度相同的关键字才有关系,两个字符串在相同位置的相同字符越多则关系越密切,若一样多则字典序越小越密切。
输入
多行(少于101),每行一个字符串(只含小写字母,长度不超过1000),连续多行的字符个数相同,视为一组输出,每组的最后一个字符为给你的字符串。
输出
每组数据按照相关关系密切程度排序
样例输入
aaa bab aba acdes abcde aaaaa
样例输出
aaa bab abcde acdes 题意:输入未知数量的的字符串,1>相同长度的视为一组 2>最后一组为比较样例 3>其他的与此比较,按相同位置的相同字符数量从大到小、若相同数量的话,则按字典序顺序输出解决方案:字符串处理,输入时字符串长度相同的为一组,可以先把所有的数据读完再分组处理也可以读一组处理一组。也可一个一个字符串地输入,再进行比较
#include <iostream>
#include <algorithm>
using namespace std;
typedef struct node
{
string s;
int count;
}N;
N n[110];
bool cmp(const N &t1,const N &t2)
{
if(t1.count==t2.count)
return t1.s<t2.s;
return t1.count>t2.count;
}
int main()
{
int num=0;
string s1;
cin>>s1;
n[0].s=s1;
int len=s1.size();
while(cin>>s1)
{
if(len==s1.size())
n[++num].s=s1;
else
{
if(num!=0)
{
for(int i=0;i<num;++i)
{
n[i].count=0;
for(int j=0;j<n[0].s.size();++j)
if(n[i].s[j]==n[num].s[j])
n[i].count++;
}
sort(n,n+num,cmp);
for(int i=0;i<num;++i)
cout<<n[i].s<<endl;
}
num=0;
len=s1.size();
n[0].s=s1;
}
}
if(num!=0)
{
for(int i=0;i<num;++i)
{
n[i].count=0;
for(int j=0;j<n[0].s.size();++j)
if(n[i].s[j]==n[num].s[j])
n[i].count++;
}
sort(n,n+num,cmp);
for(int i=0;i<num;++i)
cout<<n[i].s<<endl;
}
return 0;
}
检索关键字 nyoj的更多相关文章
- 用lucene.net根据关键字检索本地word文档
目前在做一个winform小软件,其中有一个功能是能根据关键字检索本地保存的word文档.第一次是用com读取word方式(见上一篇文章),先遍历文件夹下的word文档,读取每个文档时循环关键字查找, ...
- Android百度地图开发04之POI检索
POI检索 POI~~~ Point of Interest,翻译过来就是“兴趣点”.我们在使用地图的时候,搜索周边的ktv,饭店,或者宾馆的时候,输入关键字,然后地图展示给我们很多个点, 这些点就是 ...
- ElasticSearch(十)Elasticsearch检索出的数据列表按字段匹配的优先顺序及搜索单词拼音一部分搜不到数据
检索出的数据列表按字段匹配的优先顺序 一.举例 比如,发布一篇文章,文章包括基本的字段包括标题.发布时间.点击率.关键字.内容.当在页面中输入“教育”搜索关键词,会检索出指定字段包括“教育”的所有数据 ...
- Js实现页面关键字高亮显示
<!DOCTYPE HTML> <html lang="en"> <meta http-equiv="Content-Type" ...
- MyBatis 错误日志检索
当怀疑是sql语句执行存在错误时,可以用一下关键字检索日志文件: 检索关键字: Cause: SQLException sql原始报错内容: [DEBUG] [2016-05-03 09:37:05 ...
- (转载) 百度地图工具类封装(包括定位,附近、城市、范围poi检索,反地理编码)
目录视图 摘要视图 订阅 赠书 | 异步2周年,技术图书免费选 程序员8月书讯 项目管理+代码托管+文档协作,开发更流畅 百度地图工具类封装(包括定位,附近.城市.范围poi检索, ...
- 如何在Github快速找到资源(资源快速检索)
github 资源检索 Github上的资源如漫天星辰,如果没有技巧,盲目的瞎找,想找到自己想要学习的的知识和资源如大海捞针!!!! 掌握正确的方法,可以说是"妈妈再也不用担心,你找不到代码 ...
- Unity 序列化 总结
查找了 Script Serialization http://docs.unity3d.com/Manual/script-Serialization.html 自定义序列化及例子: http:// ...
- 【转载】Lucene.Net无障碍学习和使用:搜索篇
在上一篇中,我们初步理解了索引的增删改查基本操作.本文着重介绍一下常用的搜索,以及搜索结果的排序和分页.本文的搜索主要是基于前一篇介绍的文本文件的索引,建议下载最后改进的demo对照着看阅读本文,同时 ...
随机推荐
- robot framework学习笔记1之_环境安装(win7)
一.简介 Robotframework是基于Python的自动化测试框架.使用关键字驱动的测试方法,自带丰富的库函数可直接引用,可使用Java/Python进行功能库扩展,测试用例使用TSV/HTML ...
- Linux中su、su -和sudo的区别
su 切换到root用户,但是并没有转到root用户家目录下,即没有改变用户的环境. su - 切换到root用户,并转到root用户的家目录下,即改变到了root用户的环境. 这个涉及到不同用户下的 ...
- 主席树学习笔记-hdu-2665
主席树就是对每个历史版本都建了一颗线段树,这样我们在统计一些问题的时候,对于一个区间[L,R]的询问,就可以利用前缀和的思想找到第L-1和第R颗历史版本的线段树来处理查找.由于这样空间需求就增大了,注 ...
- java 中利用异或实现两个变量互换
一般实现两个变量之间的互换要用第三个变量,这样做可以,但创建新变量,增加了系统开销.如果要交换的变量时两个整数型变量,可以用更高效的方法.例如:^(异或)操作,举例如下: package chapte ...
- HttpServletResponse输出的中文乱码
HttpServletResponse输出有两种格式,一种是字符流,一种是字节流. 1.字符流 // 这句话的意思,是让浏览器用utf8来解析返回的数据,即设置客户端解析的编码 response.se ...
- dns 服务架构优化 - 百万级并发不是梦 - bind+namedmanager+dnsmasq
bind: DNS服务端. namedmanager: DNS web管理页面. dnsmasq: 并发查询上游dns域名解析. 问题:作为消息推送业务,单台业务机器域名解析并发达到上万次.业务机器集 ...
- 在python中是没有NULL的,取而代之的是None,它的含义是为空
在python中是没有NULL的,取而代之的是None,它的含义是为空
- hadoop kafka install (6)
reference: http://kafka.apache.org/quickstart http://dblab.xmu.edu.cn/blog/1096-2/ hadoop@iZuf68496 ...
- CentOS6编译安装Python3
CentOS6默认Python版本是2, 但我使用的是Python3,因此需要自己安装 但记住,不要删除自带的Python2,否则很多东西会报错,比如yum之类的.(别问我为什么知道...) 话不多说 ...
- IntentService的用法,对比Service它会按顺序执行,不会像Service一样并发执行。
package com.lixu.intentservice; import android.app.Activity; import android.content.Intent; import a ...