這個算法的複雜性是什麼?至少看起來是O(n^2)。最長的迴文前綴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自動生成的方法存根'只要您觸摸該方法,就會刪除此註釋,因爲如果您手動執行某些操作,則註釋會出錯。 – 2011-04-09 22:07:42
對我來說聽起來像[理論上的cs](http://cstheory.stackexchange.com/) – mbx 2011-04-09 22:21:28
理論上的cs不適用於像這樣的本科層次的問題。它屬於這裏。 – 2011-04-10 07:13:40