Algorithm -- 字母重排
字母重排
输入一个字典(用***结尾),然后再输入若干单词。没输入一个单词w,都需要在字典中找出所有可以用w的字幕重排后得到的单词,并按照字典序从小到大的顺序在一行中输出,如果不存在,输出“:(”。单词间用空格隔开,且所有输入单词都由不超过6个小写字母组成。
样例输入: tarp given score refund only trap work earn course ***** aptr asdfg 样例输出: part tarp trap :(
程序:
#include <iostream> #include <cstring> //#include <stdio.h> #include <stdlib.h> using namespace std;char word[2000][10], sorted[2000][10];//字符比较函数 int cmpString(const void *a, const void *b) {return strcmp((char*)a, (char*)b); }//字符串比较函数 int cmpChar(const void *a, const void *b) {return *(char*)a - *(char*)b; }int main() {int n = 0;while(true){cin >> word[n];if(word[n][0] == '*') break; //遇到结束标注就终止n++;}qsort(word, n, sizeof(word[0]), cmpString); //给所有单词排序for(int i = 0; i < n; i++){strcpy(sorted[i], word[i]);qsort(sorted[i], strlen(sorted[i]), sizeof(char), cmpChar); //给每个单词排序 }char s[10];while(cin >> s) //读取字符串 {qsort(s, strlen(s), sizeof(char), cmpChar); //给输入单词排序bool found = false;for(int i = 0; i < n; i++){if(!strcmp(sorted[i], s)){found = true;cout << word[i] << " "; //输出原始单词,而不是排序后的 }}if(!found) cout << ":(";cout << endl;}return 0; }
转载于:https://www.cnblogs.com/jeakeven/p/4630841.html
Algorithm -- 字母重排相关推荐
- Bailian3250 字母重排【排序】
3250:字母重排 总时间限制: 1000ms 内存限制: 65536kB 描述 输入为一行字符串,里面包含数字.字母(小写)等各种字符,要求把字符串里面的字母挑出来,按照ASCII码从小到大排序输出 ...
- 字母重排(算法竞赛入门经典)
输入一个字典,用*****结尾,输入若干单词用00000结尾.每个单词w,都需要在字典中找出所有可以用w的字母重排后得到的单词,并按照字典序从小到大的顺序在一行中输出(如果不存在,输出:( ,输入单词 ...
- [code]字母重排
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- 【Python 百炼成钢】错位键盘、单词的长度、字母重排
文章目录 前言 一.错位键盘
- 【ACM】UVa 1339
[题目]:给定两个长度相同且不超过100的字符串,判断是否能把其中一个字符串的各个字母重排,然后对26个字母做一一映射,使得两个字符串相同.输入两个字符串,输出"YES"或者&qu ...
- [Codeforces741D]Arpa's letter-marked tree and Mehrdad's Dokhtar-kosh paths——dsu on tree
题目链接: Codeforces741D 题目大意:给出一棵树,根为$1$,每条边有一个$a-v$的小写字母,求每个点子树中的一条最长的简单路径使得这条路径上的边上的字母重排后是一个回文串. 显然如果 ...
- 算法竞赛入门经典(第二版) | 例题5-4 反片语 (map+标准化)(UVa156,Ananagrams)
题目大意: 输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另外一个单词.在判断是否满足条件时,字母不分大小写,但在输出时应保留输入中的大小写,按字典序排列. 题目( ...
- Ananagrams Uva 156
Ananagrams (map的使用) Most crossword puzzle fans are used to anagrams–groups of words with the same le ...
- (STL,map)反片语
题目 输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另外一个单词.在判断是否满足条件时,不区分大小写,但输出保留输入中的大小写,按字典序进行排列(所有大写字母在小写 ...
- 156 - Ananagrams
Ananagrams Most crossword puzzle fans are used to anagrams–groups of words with the same letters in ...
最新文章
- openssl-1.0.1用mingw编译
- Java面试知识点:网络编程
- 【Java】探究Java方法的参数传递是值传递还是引用传递
- 大数据公司Palantir曾向法拉第未来投资2500万美元
- 用php绘制空心圆,html5使用canvas画空心圆与实心圆_html5教程技巧
- python经典程序实例-Python3经典100例(③)
- java word转pdf jacob_java使用jacob.jar将word转pdf
- Linux虚拟机中安装VMware Tools
- StreamSets sdc rpc 测试
- 题目:输入某年某月某日,判断这一天是这一年的第几天?
- 滚动条滚动到页面底部继续加载
- hdu 2037 这个夏天不AC (java)
- 《跟我学Shiro》——张开涛(链接)
- 酒店机器人:酒店增收提质的新引擎
- 回忆借你的曾经—致我们终将逝去的青春_伤感日志
- Java中怎么打开jsp_jsp文件怎么打开 打开jsp文件的详细步骤【详细介绍】
- 制造业OEER语言数据挖掘之相关性分析
- mysql按半小时分组
- excel从身份证号码中获取邮编信息?
- Vue组件通讯的多种方式(个人记录)