当前位置: 首页 > news >正文

leetcode 409 Longest Palindrome 最长回文串(简单)

一、题目大意

给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的回文串 。

在构造过程中,请注意 区分大小写 。比如 “Aa” 不能当做一个回文字符串。

示例 1:

输入:s = “abccccdd”
输出:7
解释:
我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。

示例 2:

输入:s = “a”
输入:1

提示:

  • 1 <= s.length <= 2000
  • s 只由小写 和/或 大写英文字母组成

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/longest-palindrome
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

二、解题思路

思路:先统计每个字符出现的次数,再遍历统计后的字符次数,如果是偶数次,那么一定可以是回文字符串的一部分,加上该次数;如果是奇数n字,那么加上n-1次;最后判断如果出现过奇数次的字符,那么最后结果加1。

三、解题方法

3.1 Java实现

public class Solution {
    public int longestPalindrome(String s) {
        Map<Character, Integer> map = new HashMap<>();
        for (char c : s.toCharArray()) {
            map.put(c, map.getOrDefault(c, 0) + 1);
        }
        boolean odd = false;
        int ans = 0;
        for (Integer count : map.values()) {
            if (count % 2 == 0) {
                ans += count;
            } else {
                odd = true;
                ans += (count - 1);
            }
        }
        ans += odd ? 1 : 0;
        return ans;
    }
}

四、总结小记

  • 2022/8/31 不合理的管理是造成内耗的原因之一

相关文章:

  • 【C语言基础】Chap. 4. 初识指针和结构体
  • CentOS8挂载本地ISO 配置本地YUM源
  • 手把手开发Admin 系列二(统一格式篇)
  • java计算机毕业设计物品分享网站源码+系统+数据库+lw文档+mybatis+运行部署
  • 基于MQ的分布式事务实现方案
  • 基于PaddleOCR开发easy click文字识别插件
  • 建立对象模型— 如何确定类与对象?
  • VMware Workstation Pro16 的下载与安装
  • java计算机毕业设计基于安卓Android的电子废弃物回收利用APP
  • PostgreSQL LISTEN 与NOTIFY命令
  • 基于ssm的养老智慧服务平台毕业设计源码071526
  • MySQL 安装详细步骤
  • 关于 SAP ABAP CL_HTTP_CLIENT API 中的 SSL_ID 参数
  • JavaFX、贷款服务器
  • Powershell历史执行记录
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • Cumulo 的 ClojureScript 模块已经成型
  • Material Design
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • React as a UI Runtime(五、列表)
  • Redash本地开发环境搭建
  • SQLServer之创建数据库快照
  • vue的全局变量和全局拦截请求器
  • vue--为什么data属性必须是一个函数
  • WebSocket使用
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 基于游标的分页接口实现
  • 回归生活:清理微信公众号
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 组复制官方翻译九、Group Replication Technical Details
  • ​渐进式Web应用PWA的未来
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #前后端分离# 头条发布系统
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (HAL库版)freeRTOS移植STMF103
  • (SpringBoot)第七章:SpringBoot日志文件
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (第二周)效能测试
  • (规划)24届春招和25届暑假实习路线准备规划
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (一)u-boot-nand.bin的下载
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)C#调用WebService 基础
  • (转)视频码率,帧率和分辨率的联系与区别
  • .Mobi域名介绍
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .net项目IIS、VS 附加进程调试
  • .NET应用架构设计:原则、模式与实践 目录预览
  • /bin/bash^M: bad interpreter: No such file or directory
  • @GlobalLock注解作用与原理解析
  • [2021 蓝帽杯] One Pointer PHP
  • [52PJ] Java面向对象笔记(转自52 1510988116)
  • [ASP.NET MVC]Ajax与CustomErrors的尴尬