-
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
示例 1:
输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。
示例 2:输入: "cbbd"
输出: "bb"来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-palindromic-substring
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。class Solution { private static HashMap<Integer,String> aa = new HashMap();//solution类的全局变量, //用 来存放所有不重复子串 private static int map=-1; public String longestPalindrome(String ori) { split(ori); int Max=0,sign=0; if(ori.equals("")) return ""; if(ori.length()==1) return ori; for (int i=1;i<aa.size();i++) { String s=aa.get(i); if(isPalindrome(s)){ if(s.length()>Max) sign=i; } } return aa.get(sign); } public static void split(String str) { //通过递归的方式切割,并且找出所有子串 for (int length = 1; length <= str.length(); length ++) { for (int startIndex = 0; startIndex <= (str.length() - length); startIndex ++) { int endIndex = startIndex + length; aa.put(++map,(str.substring(startIndex, endIndex))); } } } public static boolean isPalindrome(String s){//用来判断是否为回文子串 if(s==null) return false; for(int i=0;i<s.length()/2;i++){ if(s.charAt(i)!=s.charAt(s.length()-1-i)) return false; } return true; } }
-
-
09-27
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交