Skip to content

Instantly share code, notes, and snippets.

@ka8725
Created April 23, 2012 16:33
Show Gist options
  • Select an option

  • Save ka8725/2472123 to your computer and use it in GitHub Desktop.

Select an option

Save ka8725/2472123 to your computer and use it in GitHub Desktop.
import java.util.ArrayList;
public class AkariDaisukiDiv2 {
ArrayList<String[]> ar = new ArrayList<String[]>();
String ss;
private boolean eq(String[] a, String[] res) {
if (a.length != res.length) {
return false;
}
for (int i = 0; i < a.length; i++) {
if (a[i] != res[i]) {
return false;
}
}
return true;
}
private boolean isPresent(String[] res) {
System.out.println(res.toString());
for (int i = 0; i < res.length; i++) {
if (res[i].isEmpty()) {
return true;
}
}
for (int i = 0; i < ar.size(); i++) {
if (eq(ar.get(i), res)) {
return false;
}
}
return false;
}
private void tokenize(char ch, int start, ArrayList<String> res) {
if (res.size() > 2) {
return;
}
if (res.size() == 2) {
res.add(ss.substring(start, ss.length()));
res.add(new Character(ch).toString());
String[] sss = new String[4];
for (int i = 0; i < sss.length; i++) {
sss[i] = res.get(i);
}
if (!isPresent(sss)) {
ar.add(sss);
}
return;
}
for (int i = start; i < ss.length(); i++) {
if (ss.charAt(i) == ch && i > 0) {
String s = ss.substring(start, i);
res.add(s);
tokenize(ch, i + 1, res);
}
}
}
public int countTuples(String s) {
ss = s;
for (int i = 0; i < s.length(); i++) {
char a = s.charAt(i);
tokenize(a, 0, new ArrayList<String>());
}
return ar.size();
}
/**
* @param args
*/
public static void main(String[] args) {
int s = new AkariDaisukiDiv2().countTuples("topcoderdivtwo");
System.out.println(s);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment