zoukankan      html  css  js  c++  java
  • 算法笔记_222:串中取3个不重复字母(Java)

    目录

    1 问题描述

    2 解决方案

     


    1 问题描述

    从标准输入读入一个由字母构成的串(不大于30个字符)。

    从该串中取出3个不重复的字符,求所有的取法。

    取出的字符,要求按字母升序排列成一个串。

    不同的取法输出顺序可以不考虑。

    例如:
    输入:
    abc
    则输出:
    abc

    输入:
    abcd
    则输出:
    abc
    abd
    acd
    bcd

    输入:
    abcaa
    则输出:
    abc

     


    2 解决方案

     1 import java.util.ArrayList;
     2 import java.util.Collections;
     3 import java.util.Scanner;
     4 
     5 public class Main {
     6     public static ArrayList<Character> list = new ArrayList<Character>();
     7     public static ArrayList<String> set = new ArrayList<String>();
     8     
     9     public void dfs(int step, int now, int[] B) {
    10         if(step == 3) {
    11             StringBuffer s = new StringBuffer("");
    12             s.append(list.get(B[0]));
    13             s.append(list.get(B[1]));
    14             s.append(list.get(B[2]));
    15             if(!set.contains(s.toString()))
    16                 set.add(s.toString());
    17             return;
    18         } else {
    19             for(int i = now + 1;i < list.size();i++) {
    20                 B[step] = i;
    21                 dfs(step + 1, i, B);
    22             }
    23         }
    24     }
    25     
    26     public void getResult(String A) {
    27         char[] arrayA = A.toCharArray();
    28         for(int i = 0;i < arrayA.length;i++)
    29             if(!list.contains(arrayA[i]))
    30                 list.add(arrayA[i]);
    31         Collections.sort(list);
    32         int[] B = new int[3];
    33         dfs(0, -1, B);
    34         for(int i = 0;i < set.size();i++)
    35             System.out.println(set.get(i));
    36     }
    37     
    38     public static void main(String[] args) {
    39         Main test = new Main();
    40         Scanner in = new Scanner(System.in);
    41         String A = in.nextLine();
    42         test.getResult(A);
    43     }
    44 }

    运行结果:

    123454321
    123
    124
    125
    134
    135
    145
    234
    235
    245
    345
  • 相关阅读:
    ABAP TCode
    SAP 常用的事务代码
    SAP FI TCode
    Little Tutorials的一篇文章断言:UML(统一建模语言)正在死亡:
    SAP PP TCode
    [ZT]解密中国IT人十大职业现状
    User Exit Query
    SAP客户端多语言设置
    一个女CIO的诞生
    DIY防奸手册之 主流硬盘型号解惑篇
  • 原文地址:https://www.cnblogs.com/liuzhen1995/p/6893605.html
Copyright © 2011-2022 走看看