文章目录
-
- 8.18
-
- [409. 最长回文串](https://leetcode-cn.com/problems/longest-palindrome/)
- [412. Fizz Buzz](https://leetcode-cn.com/problems/fizz-buzz/)
- [414. 第三大的数](https://leetcode-cn.com/problems/third-maximum-number/)
- [434. 字符串中的单词数](https://leetcode-cn.com/problems/number-of-segments-in-a-string/)
- [443. 压缩字符串](https://leetcode-cn.com/problems/string-compression/)
- [448. 找到所有数组中消失的数字](https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array/)
- [455. 分发饼干](https://leetcode-cn.com/problems/assign-cookies/)
- 8.19
- 8.20
8.18
409. 最长回文串
难度简单
通用的方法就是利用一个map来实现。
class Solution {
public int longestPalindrome(String s) {
Map<Character, Integer> map = getMap(s);
int len = 0;
Set<Character> set = new HashSet<>();
for(Map.Entry<Character, Integer> entry : map.entrySet()){
int val = entry.getValue();
len += val / 2 * 2;
if(val % 2 == 0){
set.add(entry.getKey());
}
}
for(Character c : set){
map.remove(c);
}
if(map.size() > 0){
len++;
}
return len;
}
private Map<Character, Integer> getMap(String str){
Map<Character, Integer> map = new HashMap<>();
for(char c : str.toCharArray()){
if(map.containsKey(c)){
map.put(c, map.get(c) + 1);
}else{
map.put(c, 1);
}
}
return map;
}
}
其中最开始想用以下的方式进行删除。但是在遍历map中删除的时候会有Modify的异常。因为remove(object)会修改内部的mod值,而在之后的遍历时会有预期的mod值,预期与实际不符,就会抛出异常。所以就该用了上面的做法来做。不过如果用数组会更加快速,只是通用性不高。
if(val % 2 == 0){
map.rempve(entry.getKey());
}
412. Fizz Buzz
难度简单
class Solution {
public List<String> fizzBuzz(int n) {
List<String> ans = new ArrayList<>(n);
for(int i = 1;i <= n;i++