zoukankan      html  css  js  c++  java
  • (1) 一个字符串,根据输入参数m,找出字符串的m个字符的所有字符串

    /**
     * 	有一个字符串,根据输入参数m,找出字符串的m个字符的所有字符串
    	例如: 
    	String str ="abc", m=2  得到结果是 "ab" "ac" "bc"
    	String str ="abcd" , m=3 得到结果是"abc" "acd" "bcd" "abd"
    	
    	注:程序摘自网上
     *
     */

    public static void main(String[] args) {
    		List<String> list = choose("abcde",3);
    		for (String string : list) {
    			System.out.println(string);
    		}
    	}
    
    	public static List<String> choose(String target, int m) {
    		List<String> resultList = new LinkedList<>();
    		doChoose(resultList, target, "", m, 0);
    		return resultList;
    	}
    
    	private static void doChoose(List<String> resultList, String target,
    			String resultStr, int m, int head) {
    
    		// 递归头
    		if (resultStr.length() == m) {
    			resultList.add(resultStr);
    			return;
    		}
    
    		// 递归体
    		for (int i = head; i < target.length(); i++) {
    			doChoose(resultList, target, resultStr + target.charAt(i), m, i + 1);
    		}
    	}


  • 相关阅读:
    GitHub入门之一:使用github下载项目
    Android Fragment 真正的完全解析(下)
    Android Fragment 真正的完全解析(上)
    c# 发送邮件
    SmartThreadPool
    虚拟机
    相关系数
    为枚举类型添加说明 zt
    MD5
    hashcode
  • 原文地址:https://www.cnblogs.com/xiaozhang2014/p/5297289.html
Copyright © 2011-2022 走看看