leetcode[Longest Palindrome]//待整理多种解法
来源:互联网 发布:荷兰国旗问题算法java 编辑:程序博客网 时间:2024/06/01 18:57
解法一:
public class Solution { public int longestPalindrome(String s) { //由于本题只让求出给定字符串可能组成的最大回文串(由给定字符串的子串排列组合而成)的最大长度 //没有让求出具体的哪一个最大回文串,所以不用去一个个找 //根据回文串的定义,只要一个字符串是2n或2n+1的形式,n代表一个相同的部分,那么这个字符串就是回文串 HashSet<Character> set = new HashSet<>();//HashSet在查找特定元素上比较快,而且虽然Set不允许重复,但一定没有重复的可能 int count = 0; for(int i = 0; i < s.length(); i++){ if(set.contains(s.charAt(i))){ count++; set.remove(s.charAt(i));//移除相同的部分,这里用count就相当于在记录2n的n } else{ set.add(s.charAt(i)); } } //最后set集合中还剩下一些都不属于2n的n,都是消不了的,可以随便选一个来构成2n+1的1 //若最后set集合中不剩下元素,说明刚好是2n if(set.isEmpty()){ return 2 * count; } else{ return 2 * count + 1; } }}
阅读全文
0 0
- leetcode[Longest Palindrome]//待整理多种解法
- leetcode [Palindrome Linked List]//待整理多种解法
- leetcode[Longest Uncommon Subsequence I ]//待整理多种解法
- leetcode[Longest Substring Without Repeating Characters]//待整理多种解法
- leetcode[Longest Palindromic Substring]//待整理多种解法
- leetcode [Path Sum]//待整理多种解法
- leetcode [Majority Element]//待整理多种解法
- leetcode [Rotate Array]//待整理多种解法
- leetcode [Reverse Bits]//待整理多种解法
- leetcode [Happy Number]//待整理多种解法
- leetcode [Isomorphic Strings]//待整理多种解法
- leetcode [Contains Duplicate]//待整理多种解法
- leetcode[Add Digits]//待整理多种解法
- leetcode[Ugly Number]//待整理多种解法
- leetcode[Missing Number]//待整理多种解法
- leetcode[Word Pattern]//待整理多种解法
- leetcode[Ransom Note]//待整理多种解法
- leetcode[Fizz Buzz]//待整理多种解法
- js shell 运行javascript文件
- 多重循环+方法+递归(新手作业)
- 编写Java程序,实现接收用户输入的正整数,输出该数的阶乘。要求:限制输入的数据在1-10之间,无效数据进行提示,结束程序。输出结果如:4!=1*2*3*4=24
- POJ 3249 (DAG)
- ubuntu14.04 通过PPA 安装ffmpeg
- leetcode[Longest Palindrome]//待整理多种解法
- 嵌入式每日学习心得2017.07.18
- KNN方法中关于K值的影响
- 30.查找所有可能的字符串组合
- 初识ARM
- Linux后台运行 nohup command >/dev/null 2>&1 &
- 文件读写 iflie对象(读操作) / ofile对象(写操作)
- AdminEAP框架简介
- 数据结构与算法分析之平衡二叉树的建立