首页 > 代码库 > LeetCode OJ - Valid Palindrome
LeetCode OJ - Valid Palindrome
这道题挺简单的,但是需要细心。
最好的方法是先对string做预处理,然后再判断是否是回文。
下面是AC代码:
1 /** 2 * Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. 3 * @param s 4 * @return 5 */ 6 public boolean isPalindrome(String s){ 7 String pre = preProcess(s); 8 char[] sw = pre.toCharArray(); 9 if(pre==null || pre.length()<=1 ) 10 return true; 11 int i=0; 12 int j=pre.length()-1; 13 while(i<=j){ 14 if(sw[i]!=sw[j]) 15 return false; 16 i++; 17 j--; 18 } 19 return true; 20 } 21 /** 22 * pre-processing the string, remove all non-isAlphanumeric 23 * and change all to lower 24 * @param s 25 * @return 26 */ 27 private String preProcess(String s){ 28 29 StringBuffer sb = new StringBuffer(); 30 for(int i=0;i<s.length();i++) 31 if(isAlphanumeric(s.charAt(i))) 32 sb.append(s.charAt(i)); 33 return sb.toString().toLowerCase(); 34 } 35 /** 36 * make decision if a character is a alphanumeric 37 * @param c 38 * @return 39 */ 40 private boolean isAlphanumeric(char c){ 41 if(c>=‘a‘ && c<=‘z‘ || c>=‘A‘ && c<=‘Z‘ || c>=‘0‘&& c<=‘9‘) 42 return true; 43 return false; 44 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。