import java.util.Arrays;
/**
*字典序全排列
*字符串的全排列
*比如单词"too" 它的全排列是"oot","oto","too"
*1,从右端开始扫描,若出现前一个比后一个小,记录前一个的元素下表index
*2,再找出index以后比该元素大的中的最小值的下标,(实现见 下面的getMin方法)
*3,index以后的元素实现反转(实现 见下面的reverse方法)
*结束条件:前一个都比后一个大的情况
*/
public class StringExpress{
int getMin(char[]input,int index){
char min=input[index];
int minIndex=index+1;
char result='z';
for(int i=index+1;i<input.length;i++){
if(input[i]>min&&input[i]<result){
result=input[i];
minIndex=i;
}
}
return minIndex;
}
void exchange(char []input,int index,int minIndex){
char temp=input[index];
input[index]=input[minIndex];
input[minIndex]=temp;
}
void reverse(char input[],int first,int end) {
while(first<end){
exchange(input,first,end);
first++;
end--;
}
}
void getDictionary(char c[]){
System.out.println(new String(c));
//boolean flag=true;
int i=0;
while(true){
i=c.length-1;
for(;i>0;i--){
if(c[i-1]<c[i])break;
}
if(i==0)break;
int minIndex=getMin(c,i-1);
exchange(c,i-1,minIndex);
reverse(c,i,c.length-1);
System.out.println(new String(c));
} }
public static void main(String []args){
String input="aat";
char [] c=input.toCharArray();
Arrays.sort(c);
new StringExpress().getDictionary(c);
}
}

最新文章

  1. SDWebImage笔记
  2. ios基础篇(十六)——UIWebView的基本使用
  3. ZooKeeper学习第七期--ZooKeeper一致性原理
  4. sdut 2416:Fruit Ninja II(第三届山东省省赛原题,数学题)
  5. &lt;s:select&gt;中list获取action中数据
  6. 本地安装xssing
  7. linux配置mysql,tomcat命令vi
  8. Java正则表达式:Pattern类和Matcher类
  9. 通过代码设置radiobutton不同方位图标的两种方法
  10. 【27前端】base标签带有href属性会让chrome里的svg元素url失效
  11. SpringBatch的核心组件JobLauncher和JobRepository
  12. 【.NET Core项目实战-统一认证平台】第七章 网关篇-自定义客户端限流
  13. 安卓抓包https
  14. 解决端口耗尽问题: tcp_tw_reuse、tcp_timestamps
  15. salesforce零基础学习(八十八)项目中的零碎知识点小总结(二)
  16. 【转】如何安装JDK以及配置Java运行环境
  17. ESN,MEID 和pESN
  18. RSD 直观介绍
  19. (转)3个常用基于Linux系统命令行WEB网站浏览工具(w3m/Links/Lynx)
  20. 从零开始学做微信小程序,看这些就够了!

热门文章

  1. Python开发【笔记】:探索Python F-strings
  2. kubernetes实战(八):k8s集群安全机制RBAC
  3. (转)二十三种设计模式及其python实现
  4. iis6下配置支持.net4.0&amp;发布网站[转]
  5. 2.2 The Object Model -- Reopening Classes and Instances
  6. 005-matlab2018a安装破解
  7. 26种基于PHP的开源博客系统
  8. 一个很大的文件,存放了10G个整数的乱序数列,如何用程序找出中位数。
  9. 没的选择时,存在就是合理的::与李旭科书法字QQ聊天记录
  10. echarts页面中多图自适应