Longest Palindromic Substring(最长回文子字符串)
来源:互联网 发布:能玩dota2的笔记本知乎 编辑:程序博客网 时间:2024/05/17 07:35
什么是回文?就是正着的字符串和反着的字符串是一样的。比如“aba”,比如“owekkewo”。
这个算法在leetcode上判定时间过长,而没通过,先记录一下吧,后面想想怎么改善。
public class Solution { private Object object; public String longestPalindrome(String s) { String s1; start = SystemClock.currentThreadTimeMillis(); if (s.isEmpty()) { return null; } else if (s.length() == 1) { return s; } else { ArrayList<String> arrayList = new ArrayList<>(); for (int i = 0; i < s.length(); i++) { //从前往后,逐个字母 String substring1 = s.substring(i, i + 1); for (int j = i + 1; j < s.length(); j++) { //从前往后,逐个字母 String substring2 = s.substring(j, j + 1); //若有匹配,进入 if (substring1.contentEquals(substring2)) { //原始子字符串 String substring = s.substring(i, j + 1);// //子字符串的反转字符串// String reverse = process(s.substring(i, j + 1)); if (process(s.substring(i, j + 1))) { //匹配子字符串的长度 int length = substring.length(); //如果arraylist是空的 if (arrayList.isEmpty()) { //保存 arrayList.add(substring); } else if (arrayList.get(0).length() <= substring.length()) { arrayList.remove(0); arrayList.add(substring); } }// //如果正反相等// if (reverse.contentEquals(substring)) {// //匹配子字符串的长度// int length = substring.length();//// //如果arraylist是空的// if (arrayList.isEmpty()) {// //保存// arrayList.add(substring);// } else if (arrayList.get(0).length() <= substring.length()) {// arrayList.remove(0);// arrayList.add(substring);// }// } } } } if (arrayList.isEmpty()) { return s.substring(0, 1); } else { return arrayList.get(0); } } } public boolean process(String subString) { for (int i = subString.length(); i > 0; i--) { String reverse = subString.substring(i - 1, i); String negative = subString.substring(subString.length() - i, subString.length() - i + 1); if (!negative.contentEquals(reverse)) { return false; } } return true; } }
0 0
- Longest Palindromic Substring(最长回文子字符串)
- LeetCode - 5 Longest Palindromic Substring 最长回文子字符串
- 最长回文子字符串(Longest Palindromic Substring)
- Longest Palindromic Substring--求字符串最长回文子串
- 【字符串】最长回文子串Longest Palindromic Substring
- 【LeetCode】005 Longest Palindromic Substring 最长的回文子字符串
- 5. Longest Palindromic Substring(求最长回文子字符串)
- Longest Palindromic Substring 最长回文子串
- Longest Palindromic Substring-----最长回文子串
- longest palindromic substring(最长回文子串)
- 最长回文子串 Longest Palindromic Substring
- 最长回文子序列 Longest Palindromic Substring
- Longest Palindromic Substring 最长回文子串
- 最长回文子串(Longest Palindromic Substring)
- Longest Palindromic Substring 最长回文子串
- 最长回文子串 Longest Palindromic Substring
- Longest Palindromic Substring 最长回文子串
- Longest Palindromic Substring 最长回文子串
- 一句话木马
- Selvet动态配置Action方法的三种方法
- 制作 OpenStack Linux 镜像
- 值得一试的四款Linux Torrent客户端软件
- 60.拍照和摄像
- Longest Palindromic Substring(最长回文子字符串)
- [Leetcode] #17 Letter Combinations of a Phone Number
- 卷积
- Java 中System里getProperty 方法获得系统参数
- C#之面向对象
- 一周总结大纲
- 【linux】共享内存
- java回顾
- 前端培训班出身——吐槽下16年的艰辛