Word Amalgamation

Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 373  Solved: 247

Description

In millions of newspapers across the United States there is a word game called Jumble. The object of this game is to solve a riddle, but in order to find the letters that appear in the answer it is necessary to unscramble four words. Your task is to write a program that can unscramble words.

Input

The input contains four parts: 1) a dictionary, which consists of at least one and at most 100 words, one per line; 2) a line containing XXXXXX, which signals the end of the dictionary; 3) one or more scrambled 'words' that you must unscramble, each on a line by itself; and 4) another line containing XXXXXX, which signals the end of the file. All words, including both dictionary words and scrambled words, consist only of lowercase English letters and will be at least one and at most six characters long. (Note that the sentinel XXXXXX contains uppercase X's.) The dictionary is not necessarily in sorted order, but each word in the dictionary is unique.

Output

For each scrambled word in the input, output an alphabetical list of all dictionary words that can be formed by rearranging the letters in the scrambled word. Each word in this list must appear on a line by itself. If the list is empty (because no dictionary words can be formed), output the line "NOT A VALID WORD" instead. In either case, output a line containing six asterisks to signal the end of the list.

Sample Input

tarp
given
score
refund
only
trap
work
earn
course
pepper
part
XXXXXX
resco
nfudre
aptr
sett
oresuc
XXXXXX

Sample Output

score
******
refund
******
part
tarp
trap
******
NOT A VALID WORD
******
course
******

HINT

 #include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char a[][] ;
char b[][] ; void Sort (int n)
{
for (int i = ; i < n; i++) {
if (strcmp (a[i] , a[i - ]) < ) {
char ans[] ;
strcpy (ans , a[i] ) ;
int j ;
for (j = i - ; j >= && strcmp (ans , a[j]) < ; j--) {
strcpy (a[j + ] , a[j] ) ;
}
strcpy (a[j + ] , ans ) ;
}
}
} int main ()
{
//freopen ("a.txt" , "r" , stdin ) ;
int n = , s ;
do {
gets (a[n++]) ;
} while (strcmp (a[n - ] , "XXXXXX") != ) ;
n-- ;
Sort (n) ;
int k = ;
do {
gets (b[k++]) ;
} while (strcmp (b[k - ] , "XXXXXX") != ) ;
k-- ;
for (int i = ; i < k ; i++) {
bool flag = ;
for (int j = ; j < n ; j++) {
int l1 , l2 ;
char s1[] ;
char s2[] ;
strcpy (s1 , b[i]) ; l1 = strlen (s1) ; //puts (s1) ;
strcpy (s2 , a[j]) ; l2 = strlen (s2) ; //puts (s2) ;
if (l1 != l2)
continue ;
sort (s1 , s1 + l1 ) ; //puts (s1) ;
sort (s2 , s2 + l2 ) ; //puts (s2) ;
for (s = ; s < l1 ; s++) {
if (s1[s] != s2[s])
break ;
}
if (s == l1) {
printf ("%s\n" , a[j]) ;
flag = ;
}
}
if (!flag) {
puts ("NOT A VALID WORD") ;
puts ("******") ;
}
else {
puts ("******") ;
}
}
return ;
}

Word Amalgamation(枚举 + 排序)的更多相关文章

  1. poj1318 Word Amalgamation 字符串排序(qsort)

    Word Amalgamation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9794   Accepted: 4701 ...

  2. ZOJ1181 Word Amalgamation 字符串 排序查找

    传送门:ZOJ1181  思路:自身排序来判断两个字符串拥有相同的字符.   #include<cstdio> #include<cstdlib> #include<io ...

  3. hdu-----(1113)Word Amalgamation(字符串排序)

    Word Amalgamation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  4. hdu1113 Word Amalgamation(详解--map和string的运用)

    版权声明:本文为博主原创文章.未经博主同意不得转载. vasttian https://blog.csdn.net/u012860063/article/details/35338617 转载请注明出 ...

  5. HDOJ.1113 Word Amalgamation(map)

    Word Amalgamation 点我挑战题目 点我一起学习STL-MAP 题意分析 给出字典.之后给出一系列======乱序======单词,要求你查字典,如过这个乱序单词对用有多个有序单词可以输 ...

  6. poj 1318 Word Amalgamation

    Word Amalgamation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9968   Accepted: 4774 ...

  7. Uva 642 - Word Amalgamation sort qsort

     Word Amalgamation  In millions of newspapers across the United States there is a word game called J ...

  8. OpenMP之枚举排序

    // EnumSort.cpp : 定义控制台应用程序的入口点. //枚举排序 /* 枚举排序(Enumeration Sort)是一种最简单的排序算法,通常也称为秩排序(Rank Sort). 该算 ...

  9. Word Amalgamation(hdoj1113)

    Word Amalgamation Problem Description In millions of newspapers across the United States there is a ...

随机推荐

  1. Qt opencv程序运行异常

    搭建了两次qt opencv vs ,经常出现程序运行异常.找了几个原因如下: 1.opencv的路径未配置或配置有误. 2.qt中pro文件包含不正确. 3.测试opencv程序不正确.如视频或图片 ...

  2. ASP.NET 系列:RBAC权限设计

    权限系统的组成通常包括RBAC模型.权限验证.权限管理以及界面访问控制.现有的一些权限系统分析通常存在以下问题: (1)没有权限的设计思路 认为所有系统都可以使用一套基于Table设计的权限系统.事实 ...

  3. bootstrap multiselect两大组件

    组件说明以及API 1.第一个组件——multiple-select.这个组件风格简单.文档全.功能强大.但是觉得它选中的效果不太好.关于它的效果展示,我们放在后面. 2.第二个组件——bootstr ...

  4. AngularJS开发指南5:AngularJS表达式详解

    AngularJS表达式类似Javascript的代码片段,通常在数据绑定中用到,写在双大括号中,如:{{表达式}}.表达式是用$parse方法来处理的. 下面是一些合法的AngularJS表达式 1 ...

  5. 新建URL,cookie技术

    假如用户禁止了cookie,怎么用session技术 //在这里访问一下session request.getSession(); //这里注意的是 要使用一下session while(iterat ...

  6. u11-nav01

    <header id="masthead" class="masthead" role="banner"> <nav cl ...

  7. cygwin 的不同文件类型显示不同的颜色

    正常情况下,我们的cygwin安装好之后,不管是文件还是文件夹显示的颜色都是一样的,这样在我们平时的工作中很不方便 所以这里记录一下怎么设置成彩色的,其实很简单. 直接修改文件 .bashrc vim ...

  8. winform之判断验证码,,附加验证码的一般处理程序

    这里用的一般处理程序画的验证码图片. 判断验证码步骤: ①先在一般处理程序中获取验证码(一般处理程序中session的调用→context.Session[]) string code = GetRn ...

  9. [IOS UIalert模版]

    1.alertview创建 UIAlertView *alert; alert = [[UIAlertView alloc] initWithTitle:@"提示" message ...

  10. 详解Python对象属性

    在面向对象编程中,公开的数据成员可以在外部随意访问和修改,很难控制用户修改时新数据的合法性.解决这一问题的常用方法是定义私有数据成员,然后设计公开的成员方法来提供对私有数据成员的读取和修改操作,修改私 ...