LeetCode-最长回文子串
思路一:从中心开始扩展,分两种情况判断
public int maxLength = 1; public int start = 0; public String longestPalindrome(String s) { if(null == s || s.length() == 0) { return ""; } char[] arr = s.toCharArray(); for(int i = 0 ; i< arr.length ; i++) { isPalindrome(i-1,i+1,arr); //以arr[i]为中心点 isPalindrome(i,i+1,arr); //没有中心点 } return s.substring(start,start+maxLength); } public void isPalindrome(int left , int right,char[] arr) { while(left >= 0 && right < arr.length && arr[left] == arr[right]) { if(right - left + 1 > maxLength) { maxLength = right - left + 1; start = left; } left--; right++; } }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步