このアルゴリズムの複雑さは何ですか?それは少なくともO(n^2)のようです。最長のpalindrome接頭辞complextity
// civic
public static boolean isCharPalindrome(String test) {
String stripped = test.toLowerCase().replaceAll("[^0-9a-zA-Z]", "");
for(int i = 0; i < stripped.length()/2; i++) {
if(stripped.charAt(i) != stripped.charAt(stripped.length() - 1 - i)) {
return false;
}
}
return true;
}
// ILLINOISURB
public static String longestPrefixPalindrome(String test){
String max_prefix = test.substring(0,1);
for(int i=test.length()-1; i>=0; i--){
String maxPrefix = test.substring(0, i);
if(isCharPalindrome(maxPrefix)){
return maxPrefix;
}
}
return max_prefix;
}
public static void main(String[] args) {
String str = "A man, a plan, a canal, Panama!";
System.out.println("isCharPalindrome:" + isCharPalindrome("A man, a plan, a canal, Panama!"));
System.out.println("longestPrefixPal:" + longestPrefixPalindrome("NILLINOISURB"));
}
「// TODO自動生成メソッドスタブ」というコメントがあります。このようなコメントは、手で何かするとコメントが間違ってしまうため、メソッドに触れるとすぐに削除されます。 –
は私に[理論的cs](http://cstheory.stackexchange.com/)のように聞こえます – mbx
理論的なcsはこれのような学位レベルの質問のためではありません。それはここに属します。 –