题意:求输入字符串的所有组合,按字典序输出!

解法:使用枚举(枚举前先找出最字符串的最小字典序)枚举时加上枚举生成条件!

 #include <iostream>
#include <string>
#include <algorithm>
using namespace std; bool comp(char ch1,char ch2){
if(ch1 - ch2 == ){
return false;
}
if (ch2 - ch1 == ){
return true;
}
if(ch1 >= 'a' && ch2 <='Z')
{
return ch1 - < ch2;
}
else if(ch1 <='Z' && ch2 >= 'a')
{
return ch1 + < ch2;
}
else{
return ch1 < ch2;
} }
// comp() below can also meet our need
/**
int compute(char ch){
if(ch>='a' && ch<='z')
return (ch-'a')*2 +1;
else if(ch>='A' && ch<='Z')
return (ch-'A')*2;
else
return 0;
}
bool comp(char ch1,char ch2){
return compute(ch1)<compute(ch2);
}
**/
int main()
{
int in,n;
cin>>in; while(in--)
{
string s;
cin>>s;
n=s.length();
sort(s.begin(),s.end(),comp);
do{
cout<<s<<endl;
//字典序要注意加入comp()生成条件
}while(next_permutation(s.begin(),s.end(),comp));
}
return ;
}

UVA 195 Anagram的更多相关文章

  1. uva 10825 - Anagram and Multiplication(暴力)

    题目链接:uva 10825 - Anagram and Multiplication 题目大意:给出m和n,要求找一个m位的n进制数,要求说该数乘以2~m中的随意一个数的结果是原先数各个位上数值的一 ...

  2. UVA - 10825 Anagram and Multiplication

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34594 有一个m位n进制的数,它的特性是这个数依次乘以2,3... ...

  3. Fast Matrix Operations(UVA)11992

    UVA 11992 - Fast Matrix Operations 给定一个r*c(r<=20,r*c<=1e6)的矩阵,其元素都是0,现在对其子矩阵进行操作. 1 x1 y1 x2 y ...

  4. [LeetCode] Valid Anagram 验证变位词

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

  5. Leetcode Valid Anagram

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

  6. uva 1354 Mobile Computing ——yhx

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGcAAANuCAYAAAC7f2QuAAAgAElEQVR4nOy9XUhjWbo3vu72RRgkF5

  7. UVA 10564 Paths through the Hourglass[DP 打印]

    UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...

  8. UVA 11404 Palindromic Subsequence[DP LCS 打印]

    UVA - 11404 Palindromic Subsequence 题意:一个字符串,删去0个或多个字符,输出字典序最小且最长的回文字符串 不要求路径区间DP都可以做 然而要字典序最小 倒过来求L ...

  9. UVA&&POJ离散概率与数学期望入门练习[4]

    POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...

随机推荐

  1. CentOS 6.3下rsync服务器的安装与配置[转]

    CentOS 6.3下rsync服务器的安装与配置   一.rsync 简介 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也 ...

  2. Linux驱动开发cdev驱动分层设计

    #ifndef MYDEV_H #define MYDEV_H #define DYNAMIC_MINOR 256 struct mydev{ const char *name; const stru ...

  3. 搭建HWI(HiveWebInterface)步骤总结

    众所周知,Hive有三种使用方式:CLI.HWI浏览器.Thrift客户端.安装配置完Hive后无需进行额外操作即可使用CLI.但是HWI则需要单独搭建.本文主要记录我自己搭建HWI的过程. 说明:本 ...

  4. Android事件的分发机制

    在分析Android事件分发机制前,明确android的两大基础控件类型:View和ViewGroup.View即普通的控件,没有子布局的,如Button.TextView. ViewGroup继承自 ...

  5. 文本溢出、垂直外边距合并、BFC、hasLayout

    今天学习文本溢出,又遇到了一些小问题,先上图: 关于文本溢出推荐:http://www.cnblogs.com/yzg1/p/5089534.html 从里面学习到单行文本和多行文本溢出, overf ...

  6. js接收复选框的值

    <td><input type="checkbox" class="title" name="title" value=& ...

  7. java的@see注释

    @see注释用法 @see 类名 @see #方法名或属性名 @see 类名#方法名或属性名

  8. oracle存储过程写法。

    create or replace procedure testwzm(v_gdjdm in varchar2) isv_id varchar2(10);v_xlname varchar2(100); ...

  9. decode()与case then 学习与使用

    今天做项目的时候遇到一个oracle数值转换的问题,按需求需要对匹配系统时间进行固定赋值,为了避免增加复杂度并易于维护,尽量不要使用存储过程或触发器,最好是使用oracle 自带函数. 如: SQL& ...

  10. [转载] 关于“淘宝应对"双11"的技术架构分析”

    微博上一篇最新的关于“淘宝应对"双11"的技术架构分析”.数据产品的一个最大特点是数据的非实时写入.