剑指offer:求字符的所有组合
来源:互联网 发布:淘宝黑色半高领薄毛衣 编辑:程序博客网 时间:2024/05/24 05:24
题目:输入一串字符,求字符的所有排列,例如输入a、b、c,得到的组合是a bc ab ac bc abc
显然ab与ba是相同的。
下面的算法是利用回退的性质来求所有的组合的。
package com.interview;import java.util.Scanner;/* * 实现组合问题:中心思想,对于abcd,实现插入某一个位置的字符 *a 插入0位置字符 *ab 插入1位置字符 *abc 插入2位置字符 *abcd 插入3位置字符(此时已满,回退,这显然用的是栈,那么递归也是可以实现的) *abd *ac *acd *ad *b *bc *bcd *bd *c *cd *d */public class Combination {private void combine(String str) {char[] in = str.toCharArray();StringBuffer out = new StringBuffer();allCombine(in, out, 0);}private void allCombine(char[] in, StringBuffer out, int start) {for (int i = start; i < in.length; i++) {out.append(in[i]);System.out.println(out);if (i < in.length - 1)allCombine(in, out, i + 1);out.setLength(out.length() - 1);}}public static void main(String[] args) {// TODO Auto-generated method stubCombination cb = new Combination();Scanner sc = new Scanner(System.in);String str = sc.next();cb.combine(str);}}
0 0
- 剑指offer:求字符的所有组合
- [剑指offer]求字符的所有组合
- [剑指offer]求字符数组的所有组合
- 剑指offer(求字符的所有组合)
- 剑指Offer中面试题28的扩展问题(求字符的所有组合)
- 求字符的所有组合!
- 【剑指offer】面试题:求字符串的所有组合
- 剑指Offer----面试题28----扩展:字符的所有组合
- 《剑指Offer》:求字符串的组合
- 求一个字符串中所有字符的组合
- 求一个字符串中所有字符的组合
- 字符的所有组合
- 《剑指Offer》读书笔记---面试题28:字符串的排列,(扩展:求字符串的所有组合)
- 求字符串的所有组合
- 求字符串的所有组合
- 求字符串的所有组合
- 求字符串的所有组合输出
- 求字符串中元素的所有组合
- map的[]操作符的注意事项
- 《31天成为IT服务达人》--机遇篇(二)
- Mysql_innodb与myisam中存储方式的区别【2】
- jitsi-android 项目 编译
- Teradata存储过程浅析
- 剑指offer:求字符的所有组合
- file open error: [Errno 2] No such file or directory: '\xe6\xb5\x8b\xe8\xaf\x95.txt'
- 实验五图像的拉普拉斯锐化
- [leetcode] Two Sum
- 正则表达式
- 电子设计省赛--DMA与ADC
- MySQL InnoDB的存储结构总结
- 剑指offer:八皇后问题
- 由C++的泛型句柄类思考OpenCV的Ptr模板类