【力扣】面试题 01.04. 回文排列

一、题目表述

1、给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。

2、回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。

3、回文串不一定是字典当中的单词。

示例1:

输入:"tactcoa"

输出:true(排列有"tacocat"、"atcocta",等等)

二、代码

java 复制代码
class Solution {
    public boolean canPermutePalindrome(String s) {
        HashMap<Character,Integer> hashMap = new HashMap<>();
        for (int i = 0; i < s.length(); i++) {
            //getOrDefault,获取指定key的value,如果找不到就返回默认值
            hashMap.put(s.charAt(i),hashMap.getOrDefault(s.charAt(i),0)+1);
        }
        //记录有多少单个的字符
        int odd =  0;
        for(int val : hashMap.values()){
            if(val % 2 == 1){
                ++odd;
                if(odd>1){
                    return false;
                }
            }
        }
        return true;


    }
}

三、笔记反思

1、判断某字符串是否为某个回文串的排列之一,核心逻辑:最多只能有一个字符出现奇数次

2、使用 HashMap<Character, Integer> 存储每个字符的出现次数。

3、getOrDefault(key, defaultValue) 方法:若 key 存在,返回对应值;否则返回默认值 defaultValue。

相关推荐
记录Java学习的三木4 分钟前
IDEA终端中使用Maven和右侧边栏使用IDEA的Maven插件有什么区别
java·maven·intellij-idea
乘乘凉5 分钟前
C#中的值传递和引用传递
java·开发语言·c#
Seven9719 分钟前
SpringCloud 常见面试题(二)
java
就是ping不通的蛋黄派27 分钟前
数据结构与算法—线性表(C++描述)
数据结构·c++
CPU NULL37 分钟前
Redis相关知识点总结
java·数据库·spring boot·redis·缓存
晨晖241 分钟前
Spring Boot整合Spring MVC与外部配置完整笔记
java·spring boot·后端
hweiyu001 小时前
数据结构和算法分类
数据结构·算法·分类
AI小云1 小时前
【数据操作与可视化】Pandas数据处理-Series数据结构
开发语言·数据结构·python·numpy·pandas
沐浴露z1 小时前
一张思维导图理清【操作系统】
java·linux·网络
2501_916766541 小时前
【Springboot】主配置文件
java·spring boot·后端