1. 程式人生 > >字串中首尾相同的最大子字串

字串中首尾相同的最大子字串

由於上一道LeetCode題目沒有理解迴文的意思以為是首尾相同即可,所以寫好了程式碼,留著以後有機會可以用到。

import java.util.*;
class Solution {
    public String longestPalindrome(String s) {
        Hashtable<Character,Integer> map = new Hashtable<>();
        int lastindex,max=-1,i;
        char flag='0';
        if(s.length()==0){
            return "";
        }
        else
        {
            for(i=0;i<s.length();i++)
            {
                if(map.containsKey(s.charAt(i)))
                {
                    break;
                }
                else{
                    lastindex = s.lastIndexOf(s.charAt(i));
                    map.put(s.charAt(i),i);
                    if(lastindex-i>max)
                    {
                        max = lastindex-i;
                        flag = s.charAt(i);
                    }
                }
            }
            i = map.get(flag);
            return s.substring(i,max+i+1);
        }
    }
}

主要利用了java中String類的返回指定字元在此字串中最後一次出現處的索引方法,也利用了雜湊表輔助實現。