题目:给出一串字符串,找出有可能组成的最长回文串的长度。
例如:abccccdd,可以组成ccdadcc,也可以组成ccdbdcc,最长回文串的长度为7。
思路分析:分析题目就能看出来,所有可能的回文串组合,其实还是比较简单的,并不考虑字符串中字符的初始位置。因此,只需要找出总共有多少成对的字符,最后再加上一个单个字符(如果有的话),就是可能组成的最长回文串长度。
Java代码:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19public static void main(String[] args) { String str="abccccdd"; HashSet<Character> set=new HashSet<>(); int len=0; for(int i=0;i<str.length();i++) { if(set.contains(str.charAt(i))) { len++; len++; set.remove(str.charAt(i)); }else { set.add(str.charAt(i)); } } if(!set.isEmpty()) { len++; } System.out.println(len); }
最后
以上就是标致百褶裙最近收集整理的关于最长回文串Java的全部内容,更多相关最长回文串Java内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复