当前位置 : 主页 > 编程语言 > c++ >

【Leetcode】Longest Palindromic Substring

来源:互联网 收集:自由互联 发布时间:2021-06-30
LongestPalindromicSubstring.java /** * 5. Longest Palindromic Substring * Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000. * Example: * Input: "babad" * Output: "bab" * Note
LongestPalindromicSubstring.java
/**
	 * 5. Longest Palindromic Substring
	 * Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
	 * Example:
	 * Input: "babad"
	 * Output: "bab"
	 * Note: "aba" is also a valid answer.
	 * Input: "cbbd"
	 * Output: "bb"
	 * @param s
	 * @return
	 */
	public static String longestPalindrome(String s) {
		if (s.length() == 1) {
			return s;
		}
		if (s.length() == 2) {
			return s.charAt(0) == s.charAt(1) ? s : "";
		}
		String resultString = "";
		for (int i = 0; i < s.length(); i++) {
			for (int j = i + 1; j < s.length(); j++) {
				String tmp = s.substring(i, j+1);
				if(tmp.equals(reverse(tmp)) && tmp.length()>= resultString.length()){
					resultString = tmp;
				}
			}
		}
		return resultString;
	}
	
	private static String reverse(String s){
		StringBuffer strBuffer = new StringBuffer();
		for(int i=s.length()-1;i>=0;i--){
			strBuffer.append(s.charAt(i));
		}
		return strBuffer.toString();
	}
网友评论