回文算法java实现_java算法题:最长回文串
LeetCode: 給定一個包含大寫字母和小寫字母的字符串,找到通過這些字母構(gòu)造成的最長的回文串。在構(gòu)造過程中,請注意區(qū)分大小寫。比如"Aa"不能當(dāng)做一個回文字符串。注 意:假設(shè)字符串的長度不會超過 1010。
思路:利用hashset,遍歷字符串?dāng)?shù)組,判斷字符是否在hashset中,如果在則加2,并在hashset中移除改字符,反之則放入hashset中
,最后判斷count是否大于字符串長度。
代碼實現(xiàn):
/**
* @author:eason
* @desc:最長回文串(“回文串”是一個正讀和反讀都一樣的字符串,比如“l(fā)evel”或者“noon”等等就是回文串。)
* @思路:利用hashset,遍歷字符串?dāng)?shù)組,判斷字符是否在hashset中,如果在則加2,并在hashset中移除改字符,反之則放入hashset中
* ,最后判斷count是否大于字符串長度
*/
public class LongestPalindromic {
public int getLonestLength(String s){
int count = 0;
char[] chars = s.toCharArray();
HashSet set = new HashSet();
for(int i = 0;i < chars.length; i++){
char b = chars[i];
if(set.contains(b)){
count += 2;
set.remove(b);
}else{
set.add(b);
}
}
if(count < s.length()){
count ++;
}
return count;
}
public static void main(String[] args) {
String s = "assdsdgggggaa";
LongestPalindromic longestPalindromic = new LongestPalindromic();
System.out.println(longestPalindromic.getLonestLength(s));
}
}
總結(jié)
以上是生活随笔為你收集整理的回文算法java实现_java算法题:最长回文串的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: swift int转string_Swi
- 下一篇: 终端天线—7.UWB天线仿真
