1. 程式人生 > >java 迴文串總結

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));     } }