import java.io.*; public class Zuhe { //从控制台读入数据 private static String readDataFromConsole(String prompt) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = null; try { System.out.print(prompt); str = br.readLine(); } catch (IOException e) { e.printStackTrace(); } return str; } public static void main(String[] args) { String s = readDataFromConsole("请输入一个字符串: "); char[] c = s.toCharArray(); new Zuhe().zuhe(c,c.length,0); System.out.println("可能的组合数:"+kk); } static int kk=0; private void zuhe(char[] array, int n, int k) { if (n == k) { if(array[2]!='4'){//第三个位置不能出现4 String str = new String(array); if(str.indexOf("53")<0&&str.indexOf("35")<0){//3,5不能连续出现 System.out.println(str); ++kk; } } } else { for (int i = k; i < n; i++) { swap(array, k, i); zuhe(array, n, k + 1); swap(array, i, k); } } } private void swap(char[] a, int x, int y) { char temp = a[x]; a[x] = a[y]; a[y] = temp; } }
suanfa
最新推荐文章于 2025-12-02 21:20:38 发布
本文探讨了使用Java实现字符串组合的高级技巧,包括输入控制、特定字符限制和输出优化,详细介绍了算法实现过程和核心逻辑。
420

被折叠的 条评论
为什么被折叠?



