栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在java中查找字符串的所有排列

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在java中查找字符串的所有排列

在这篇文章中,我们将看到如何在 java 中找到 String 的所有排列。
我们将使用一种非常简单的方法来做到这一点。
取出String的第一个字符,递归地插入剩余String的排列的不同位置。

假设您将 String 作为ABC。
所以我们从 ABC 中取出 A
第一个字符 =A 和 RemainingString = BC
因为我们在这里应用递归,我们将找到 BC 的排列。
从 BC 中取出 B。
第一个字符= B 和 RemainingString = C
因为我们在这里应用递归,我们会找到 C 的排列。
当我们取出 C 时,我们的字符串大小变为 0,这就是我们这里的基本情况。
第一个字符 = C 和 RemainingString = “”
我们将 C 插入到 RemainingString(“”) 的排列的不同索引中,所以我们得到 C 的排列为 C。
我们将 B 插入到剩余字符串(C)的排列的不同索引中,所以我们得到BC 和 CB。
C: BC, CB
现在我们将 A 插入到 BC 和 CB 的不同索引中。
BC : ABC , BAC , BCA
CB : ACB, CAB, CBA
所以这就是我们如何得到 ABC 的所有排列。
这可能看起来很棘手,但是一旦您练习了该解决方案,您将能够更好地理解它。

在java中查找所有字符串排列的Java程序:

package org.arpit.java2blog;import java.util.HashSet;import java.util.Iterator;import java.util.Set;public class PermutationOfStringJava { public static void main(String[] args) {     Set set=permutationOfString("ABC");     System.out.println("Permutations of String ABC are:");     for (Iterator iterator = set.iterator(); iterator.hasNext();) {   String string = (String) iterator.next();   System.out.println(string);     } } public static Set permutationOfString(String str) {  Set permutationSet=new HashSet();  if(str.length()==0)  {   permutationSet.add(""); return permutationSet;  }  // take out first character of String  char c=str.charAt(0);  // Remaining String  String rem=str.substring(1);  Set permutatedSetForRemainingString=permutationOfString(rem);  for (String permutedString: permutatedSetForRemainingString) {   for (int j = 0; j <= permutedString.length(); j++) {    String permutation=insertFirstCharAtDiffPlaces(permutedString,c,j);    permutationSet.add(permutation);   }  }  return permutationSet; } public static String insertFirstCharAtDiffPlaces(String perm,char firstChar,int index) {  // Inserting firstCharacter of orig String at difference places based on index  return perm.substring(0,index)+firstChar+perm.substring(index); }}

当你运行上面的程序时,你会得到以下信息:

Permutations of String ABC are:ACBABCBCACBACABBAC


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/369339.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号