Untitled
unknown
plain_text
a year ago
2.0 kB
7
Indexable
package recursion; import java.util.ArrayList; public class FindPalindromPartition { public static void main(String[] args) { String str="madam"; ArrayList<ArrayList<String>> totalPartitions=findPalindromicPartition(str); System.out.println(totalPartitions); } private static ArrayList<ArrayList<String>> findPalindromicPartition(String str) { if(str.length()==1){ ArrayList<ArrayList<String>> flist=new ArrayList<>(); ArrayList<String> list=new ArrayList<>(); list.add(str); flist.add(list); return flist; } char first= str.charAt(0); String next=str.substring(1); ArrayList<ArrayList<String>> result=findPalindromicPartition(next); ArrayList<ArrayList<String>> finalList=new ArrayList<>(); for(ArrayList<String> l:result){ for(String st:l) { ArrayList<String> finalInnerList = new ArrayList<>(); finalInnerList.add(first + " " + st); finalList.add(finalInnerList); } } for(int i=0;i<str.length()-1;i++){ boolean isPalondrom=isPalindromeString(str.substring(0,2+i)); if(isPalondrom) { String f=str.substring(0,2+i); String l=str.substring(2+i); String cvalue=f; for(int j=0;j<l.length();j++) cvalue+=" "+l.charAt(j); ArrayList<String> finalInnerList = new ArrayList<>(); finalInnerList.add(cvalue); finalList.add(finalInnerList); } } return finalList; } private static boolean isPalindromeString(String substring) { StringBuilder stringBuilder = new StringBuilder(substring); stringBuilder = stringBuilder.reverse(); return substring.equalsIgnoreCase(String.valueOf(stringBuilder)); } }
Editor is loading...
Leave a Comment