【leetcode】266. Palindrome Permutation
2024-10-06 06:12:47
原题
Given a string, determine if a permutation of the string could form a palindrome.
For example,
"code" -> False, "aab" -> True, "carerac" -> True.
解析
判断是否可以组成回文
给一个字符串,判断字符串中的字符是否可以组成回文
思路
其实思路都一样,计算字符串中的字符个数;若字符串的字符有偶数个,则每个字符的出现次数需要有偶数次;若字符串的字符有奇数个,则最多只能有一个字符出现过奇数次,其他字符都需要出现偶数次
解法1:利用Map 的key的唯一性
public boolean canPermutePalindromeOther1(String s) {
Map<Character, Integer> map = new HashMap<>();
for (int i = 0; i < s.length(); i++) {
map.put(s.charAt(i), map.getOrDefault(s.charAt(i), 0) + 1);
}
int singleCount = 0;
for (Character c : map.keySet()) {
if ((map.get(c) & 1) != 0) {
singleCount++;
}
if (singleCount > 1) {
break;
}
}
return singleCount <= 1;
}
解法2:利用Set元素的唯一性
public boolean canPermutePalindromeOther2(String s) {
Set<Character> set = new HashSet<>();
for (int i = 0; i < s.length(); i++) {
if (!set.add(s.charAt(i))) {
set.remove(s.charAt(i));
}
}
return set.size() <= 1;
}
最新文章
- asp.net mvc4 Html.BeginForm表单提交
- Code笔记之:CSS+HTML display 属性
- SQL merge into 表合并
- Pyqt 设置 背景颜色和背景图片、 QPalette 调色板 与QPainter 画板区别 、 不规则图片
- Vs2012调试本地windows服务
- UIbutton 和UIview 切单角
- c#生成随机数示例分享
- 关于IIS中WEB网站访问弹“验证输入框”及“401限制访问”的解决办法
- UVA 1601 The Morning after Halloween
- select,poll,epoll之api笔记
- Extjs grid column里添加button等html标签,并增加点击事件
- yafu安装使用方法以及mismatched parens解决方法
- CSS Grid基于网格的二维布局系统(详细教程)
- tomcat 配置本地路径映射
- CF558E-A Simple Task-线段树+计数排序
- svnrdump:E175000:SSL is not supported错误的解决
- MogileFS-2.44 安装与配置
- django 使用mysql 数据库
- 【原创】express3.4.8源码解析之Express结构图
- OO学习第二阶段总结