You are viewing a single comment's thread. Return to all comments →
static int alternate(String s) { if(s.length() == 2 && s.charAt(0) != s.charAt(1)) { return 2; } String noDups = removeDuplicates(s); int max = 0; for(int i=0; i<noDups.length(); i++) { char a = noDups.charAt(i); for(int j=i+1; j<noDups.length(); j++) { char b = noDups.charAt(j); String t = formString(s, a, b); if(isValid(t)) { if(t.length() > max) { max = t.length(); } } } } return max; } //form string from original string using these two chars static String formString(String s, char a, char b) { String newString = ""; for(int i=0; i<s.length(); i++) { if(s.charAt(i) == a) { newString += a; } if(s.charAt(i) == b) { newString += b; } } return newString; } static boolean isValid(String s) { for(int i=1; i<s.length()-1; i++) { if(s.charAt(i-1) != s.charAt(i) && s.charAt(i-1) == s.charAt(i+1)) { continue; } else { return false; } } return true; } static String removeDuplicates(String s) { char[] chars = s.toCharArray(); Set<Character> set = new LinkedHashSet<>(); for(char c : chars) { set.add(c); } StringBuilder sb = new StringBuilder(); for(Character c : set) { sb.append(c); } return sb.toString(); }
Seems like cookies are disabled on this browser, please enable them to open this website
Two Characters
You are viewing a single comment's thread. Return to all comments →