package com.interview.flag.a;
import com.interview.algorithms.general.C1_59_PrimeNumber;
import java.util.HashSet;
import java.util.Set;
/**
* Created_By: stefanie
* Date: 15-1-7
* Time: 上午11:43
*/
public class A17_ConcatenatedString {
static Set<Integer> primes = new HashSet();
static {
int[] numbers = C1_59_PrimeNumber.generate(100);
for(int i = 0; i < 100; i++) primes.add(numbers[i]);
}
public boolean isMultiple(String s){
if (s == null || s.length() <= 2) return false;
int len = s.length();
int begin = 0;
for (int i = 1; i < len; i++) {
if (s.charAt(i) == s.charAt(begin)) begin++;
else if(s.charAt(i) == s.charAt(0)) begin = 1;
else begin = 0;
}
int pattern = len - begin;
if(pattern == 1){
return !primes.contains(len);
} else if(pattern == 2){
return !primes.contains(len/2);
} else {
if((len % 2 == 0 && begin >= len/2 - 1) || (len % 2 != 0 && begin >= len/2)){
return true;
}
return false;
}
}
public static void main(String[] args){
A17_ConcatenatedString checker = new A17_ConcatenatedString();
System.out.println(checker.isMultiple("abcabcabc")); //true
System.out.println(checker.isMultiple("bcdbcdbcde")); //false
System.out.println(checker.isMultiple("abcdabcd")); //true
System.out.println(checker.isMultiple("xyz")); //false
System.out.println(checker.isMultiple("aaaaaaaaaa")); //true
System.out.println(checker.isMultiple("bcdbcbcdbc")); //true
System.out.println(checker.isMultiple("aaaaaaa")); //false
}
}