java 迴文串總結
package work3;
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;
public class huiwenchuan2 { public boolean isPalindrome(String s) { if(s.length()==0) { return true; } int l=0; int r=s.length()-1; while(l<r) { if(!Character.isLetterOrDigit(s.charAt(l))) { //Character類 判斷其是否是字母或者數字 l++; } else if(!Character.isLetterOrDigit(s.charAt(r))) { //Character類 判斷其是否是字母或者數字 r--; }else { if(Character.toLowerCase(s.charAt(l))!=Character.toLowerCase(s.charAt(r))) { return false; } l++;//頭部右移 r--;//尾部左移 } } return true; } public static void main(String[] args) throws IOException { BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in)); String ss = buffer.readLine(); huiwenchuan2 huiwenchuan = new huiwenchuan2(); System.out.println(huiwenchuan.isPalindrome(ss)); } }
package work3;
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; import java.util.ListIterator;
public class huiwenchuan1 { public int longestPalindrome(String s) { if(s.length()==0) { return 0; } HashSet<Character> hashSet=new HashSet<Character>();//宣告hash表 char[] ch=s.toCharArray();//字串轉換為字元陣列 int count=0; for(int i=0;i<s.length();i++) { if(!hashSet.contains(ch[i])) { hashSet.add(ch[i]); }else { hashSet.remove(ch[i]); count++; } } return hashSet.isEmpty()?count*2:count*2+1; } public static void main(String[] args) throws IOException { BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in)); String ss = buffer.readLine(); huiwenchuan1 m = new huiwenchuan1(); System.out.println(m.longestPalindrome(ss)); } }