【POJ No. 1256】 字谜 Anagram

官方题目地址

【题意】

写程序从一组给定的字母中生成所有可能的单词。例如,给定单词“abc”,应该输出单词“abc”“acb”“bac”“bca”“cab”和“cba”。在输入的单词中,某些字母可能会出现多次。对于给定的单词,程序不应多次生成同一个单词,并且这些单词应按字母升序输出。

【输入输出】

输入:

输入由几个单词组成。第1行包含一个数字,表示单词数。以下每行各包含一个单词。单词由a到z的大小写字母组成。大小写字母应被视为不同。每个单词的长度都小于13。

输出:

对于输入中的每个单词,输出应该包含所有可以用给定单词的字母生成的不同单词。由同一输入词生成的词应按字母升序输出。大写字母在对应的小写字母之前

【样例】

题目要求大写字母在相应的小写字母之前,所以则正确的字母顺序是
‘A’ < ‘a’ < ‘B’ < ‘b’ < … < ‘Z’ < ‘z’。

【算法设计】

全排列问题,不过需要自定义优先级。

【算法实现】

#include<iostream>
#include<cstring>
#include<algorithm>using namespace std;int cmp(char a , char b){ // 分析出的要求: 'A' < 'a' < 'B' < 'b' < ... < 'Z' < 'z'if(tolower(a) != tolower(b) ){return tolower(a) < tolower(b);}else{return a < b;}
}int main(){char ch[20];int n;cin >> n;while(n -- ){scanf("%s" , ch);sort(ch , ch + strlen(ch) , cmp);do{printf("%s\n", ch);}while(next_permutation(ch , ch + strlen(ch) , cmp));}return 0;
}

【POJ No. 1256】 字谜 Anagram相关推荐

  1. poj 1256 Anagram—next_permutation的神奇应用

    题意:给你一条字符串,让你输出字符串中字符的全排列,输出的顺序要按它给的奇葩的字典序. 题解:要输出全排列,暴力dfs可以过,但要注意题目的字典序以及相同字符的情况.如果用next_permutati ...

  2. LeetCode OJ:Valid Anagram(有效字谜问题)

    Given two strings s and t, write a function to determine if t is an anagram of s. For example, s = & ...

  3. POJ前面的题目算法思路【转】

    1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 85% 2005-5-7 1002 487-3279 n/a 90% 2005-5- ...

  4. NOIP 好题推荐(DP+搜索+图论)POJ ZOJ

    NOIP好题推荐(DP+搜索+图论)POJ ZOJ 1370 Gossiping (数论->模线性方程有无解的判断)+(图论->DFS)  1090 Chain ->格雷码和二进制码 ...

  5. hdu与poj题目分类

    POJ 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(po ...

  6. POJ 超详细分类

    POJ 各题算法 1000    A+B Problem            送分题     49%    2005-5-7 1001    Exponentiation         高精度   ...

  7. 子串字谜substring anagrams

    [抄题]: 给定一个字符串 s 和一个 非空字符串 p ,找到在 s 中所有关于 p 的字谜的起始索引. 字符串仅由小写英文字母组成,字符串 s 和 p 的长度不得大于 40,000. 输出顺序无关紧 ...

  8. java 字谜_计算字谜的出现次数

    java 字谜 Problem statement: 问题陈述: Given a string S and a word C, return the count of the occurrences ...

  9. 制作两个字符串字谜的最小步骤数

    Prerequisite: 先决条件: Hashing data structure 散列数据结构 Problem statement: 问题陈述: Find the minimum number o ...

最新文章

  1. 彻底理解宽带信号在频域分解为窄带信号
  2. 067_为什么要使用xhtml
  3. Matlab绘制包含双Y轴的图
  4. 开源的视频笔记合集: 陌溪 / LearningNotes
  5. PCM设备在电网系统中的应用介绍
  6. Qt5.8 Windows端 关于 Style Plugin Example 官方实例中的错误
  7. 8.6 归纳式迁移学习
  8. 实现微信公众号跳转登录外部链接
  9. 企业微信SDK接口API调用-通过手机号或微信好友添加客户
  10. qq音速显示服务器断开,《QQ音速》常见问题问答汇总
  11. 一个专注PR剪辑视频的PR模板网站PRmuban.com
  12. 怎么在图片上加水印?
  13. C primer plus 复习题答案(上)
  14. 基于VTK的PACS系统的开发 心路历程2
  15. 【已解决】MATLAB未定义函数或变量 ‘wavread‘,以及audioread,audiowrite,wavwrite
  16. Ultra-Fast Mathematician
  17. 三言|格局决定结局 态度决定高度
  18. 计算机维修工试题及答案,计算机维修工初级工试题和参考答案
  19. 关于养猫的简单经验教训
  20. 太经典了!NBA球员超逗的豪言壮语

热门文章

  1. php编写网课刷题程序,网课+刷题+总结,用“套路”就能通过A考?
  2. InputBox函数用法
  3. Axure for mac安装教程(版本8.1.0.3382)
  4. 图像灰度化的三种常见方法源码
  5. XMPP协议实现原理介绍
  6. 罗斯蒙特RBI-K-546-R-DT-C-S-05-15-E-T传感器
  7. ch340 win7 64位驱动下载
  8. projece修改工期_工期设定(Project)
  9. 系统集成项目管理工程师 计算专题(下午计算题-进度类-案例分析)
  10. 第51章 设置FLASH的读写保护及解除—零死角玩转STM32-F429系列