微软面试100题 - 53
2016-04-19 22:12
381 查看
53.字符串的排列(字符串)。
题目:输入一个字符串,打印出该字符串中字符的所有排列。
例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串
abc、acb、bac、bca、cab和cba。
53.字符串的排列(字符串)。
题目:输入一个字符串,打印出该字符串中字符的所有排列。
例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串
abc、acb、bac、bca、cab和cba。
package com.algorithm.interview; import java.util.ArrayList; public class Premutation { // char[] res; ArrayList ls = new ArrayList(); public void place(char[] arr, int start){ if(start == arr.length - 1){ ls.add(arr[start]); for(int j = 0; j< ls.size(); j++){ System.out.print(ls.get(j)+","); } System.out.println(); ls.remove(ls.size() - 1); } for(int i = 0; i + start < arr.length; i++){ swap(arr,start,start+i); ls.add(arr[start]); place(arr, start+1); ls.remove(ls.size() - 1); this.swap(arr, start, start+i); } } public void swap(char[] arr, int i, int j){ char temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } public static void main(String[] args) { // TODO Auto-generated method stub Premutation prem = new Premutation(); char[] arr = {'a','b','c'}; prem.place(arr, 0); } }
相关文章推荐
- 程序员到底是一个什么职业?
- 网易前端实习面试题
- 面试常见的几个宏的定义
- 面试之经典问题-发送/接受窗口与缓存的关系
- v 面试
- 16.4.19 杭州某创业公司前端开发实习生面试分享(大神勿入)
- 面试中的二叉树问题总结【Java版】
- 程序员编码大赛第三届第二题
- Web前端年后跳槽必看的各种面试题
- 史上最全前端面试题(含答案)
- 攒了个程序员笔记本,做个记录
- 面试题:1+11+111+1111+...+(2016个1)结果中含有多个6
- new element面试心得与体会
- 面试题:1000!结果中有多少个0
- 一个图像算法岗的面试总结
- 值得程序员和设计师关注的微信公众号
- 面试题89:字符串数组首尾字符相同
- 程序员你为什么迷茫?
- iOS面试题
- 一次失败的面试