20190417-Leetcode-409.最长回文数

2023-11-01

Leetcode-409.最长回文数

给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。
在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。
注意:
假设字符串的长度不会超过 1010。
示例 1:
输入:
“abccccdd”
输出:
7
解释:
我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。

思路
用一个数组存放A-Z和a到z出现的次数,其ascii码的值为其对应的数组坐标,然后数组中的值为字母出现的次数,若出现偶数次,则把该字母出现的次数加到最后结果,用一个flag标记是否加过基数次,若加过,则把出现基数次的次数减一加到最后结果,若没有则直接相加。(回文数中最多有一个字符出现了基数词)
代码

class Solution {
public:
    int longestPalindrome(string s) {
        int s_int[123]= {0};
        int flag = 0;
        int max_length = 0;
        for(int i = 0; i < s.size(); i++){
            int temp = s[i];
            s_int[temp]++;
        }
        for(int i = 65; i < 123; i++){
            if(s_int[i] % 2 == 0){
                max_length += s_int[i];
            }else if(s_int[i] % 2 == 1 && flag == 0){
                max_length += s_int[i];
                flag = 1;
            }else if(s_int[i] % 2 == 1 && flag == 1){
                max_length += s_int[i] - 1;
            }
        }
        return max_length;
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

20190417-Leetcode-409.最长回文数 的相关文章

  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • 如何在我的应用程序中使用 Windows Key

    Like Windows Key E Opens a new Explorer Window And Windows Key R Displays the Run command 如何在应用程序的 KeyDown 事件中使用 Windows
  • 为什么禁止在 constexpr 函数中使用 goto?

    C 14 对你能做什么和不能做什么有规则constexpr功能 其中一些 没有asm 没有静态变量 看起来相当合理 但标准也不允许goto in constexpr功能 即使它允许其他控制流机制 这种区别背后的原因是什么 我以为我们已经过去
  • 跨多个控件共享事件处理程序

    在我用 C 编写的 Windows 窗体应用程序中 我有一堆按钮 当用户的鼠标悬停在按钮上时 我希望按钮的边框发生变化 目前我有以下多个实例 每个按钮一个副本 private void btnStopServer MouseEnter ob
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • 为什么模板不能位于外部“C”块内?

    这是一个后续问题一个答案 https stackoverflow com questions 4866433 is it possible to typedef a pointer to extern c function type wit
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • 我的 strlcpy 版本

    海湾合作委员会 4 4 4 c89 我的程序做了很多字符串处理 我不想使用 strncpy 因为它不会终止 我不能使用 strlcpy 因为它不可移植 只是几个问题 我怎样才能让我的函数正常运行 以确保它完全安全稳定 单元测试 这对于生产来
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反

随机推荐

  • Python项目代码结构详解

    目录结构组织方式 简要解释一下 bin 存放项目的一些可执行文件 当然你可以起名script 之类的也行 luffy 存放项目的所有源代码 1 源代码中的所有模块 包都应该放在此目录 不要置于顶层目录 2 其子目录tests 存放单元测试代
  • QML 中播放PPT文件

    效果 一 思路 MFC 操作PPT 然年将MFC封装成dll 供Qt使用 案例分享 Qt的PPT播放器 长沙红胖子Qt的博客 CSDN博客 qt 打开ppt Qt将mfc中的句柄 加载到QWidget中 QML 通过 QQuickWidge
  • 用户态和内核态的区别

    1 操作系统需要两种CPU状态 内核态 Kernel Mode 运行操作系统程序 操作硬件 用户态 User Mode 运行用户程序 2 指令划分 特权指令 只能由操作系统使用 用户程序不能使用的指令 举例 启动I O 内存清零 修改程序状
  • 计网

    实验目的和要求 熟悉交换机各种命令模式和基本命令 学习交换机的基本配置 制作网络拓扑图 1台交换机 2台PC 2台PC能够ping通 截图 截图网络拓扑图 2台PC 2台pc机分别用连通线和交叉线连接 然后测试其连通性 学习交换机VLAN的
  • 【crypto】基于crypto.js的web前端加解密系统实现

    文章目录 一 概念介绍 1 1 crypto js介绍 1 2 加密 哈希 编码 1 2 1 加密 解密 1 2 2 散列 哈希 1 2 3 BASE64编解码 二 加解密思想 以md5为例 三 前端加密系统实现代码 3 1 加解密 3 2
  • C++称硬币(枚举)

    有12枚硬币 其中有11枚真币和1枚假币 假币和真币重量不同 但不知道假币比真币轻还是重 现在 用一架天平称了这些币三次 告诉你称的结果 请你找出假币并且确定假币是轻是重 数据保证一定能找出来 输入 第一行是测试数据组数 每组数据有三行 每
  • java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错原因

    1 第一个 用户名和密码不匹配 或者是在连接池里多打了空格之类的 就是配置文件的问题 2 第二个 可能是用户的权限不够 给他添加权限 授予权限 grant all privileges on databasename tablename t
  • 关于键盘盲打的一些小技巧

    当然也是很久以前在某个网站搜索一下 然后保存的 个人觉得比较有用 具体的也不太清了 电脑键盘指法作为使用电脑的基本功 在初期养成正确的键盘指法十分重要 很多朋友由于初期没有养成正确键盘指法的习惯 导致后期习惯了错误的键盘指法 要更正已经相当
  • No module named ‘tensorflow.contrib‘问题解析以及tensorflow的卸载安装和向下兼容

    0 问题原因 TensorFlow 2 0中contrib被弃用 1 卸载原Tensorflow 重新安装 卸载 在开始安装前 如果你的电脑装过tensorflow 请先把他们卸载干净 包括依赖的包 tensorflow estimator
  • Github Fork 使用详解

    Fork 是对一个仓库的克隆 克隆一个仓库允许你自由试验各种改变 而不影响原始的项目 一般来说 forks 被用于去更改别人的项目 贡献代码给已经开源的项目 或者使用别人的项目作为你自己想法的初始开发点 提出更改别人的项目 使用 forks
  • 【React】函数组件 hooks-useState

    React 函数组件 hooks useState 使用hooks理由 useState 保存组件状态 切换数值 实现todolist增加和删除 最终结果 使用hooks理由 高阶组件为了复用 导致代码层级复杂 生命周期的复杂 写成func
  • angular4 通过httpclient调http接口,出现access-control-allow-origin跨域问题解决办法

    最近项目中在用angular4 在调试后台http接口时 会出现跨域问题 在chrom浏览器控制台报错如下 在浏览器属性中增加几行命令 即可解决该问题 具体做法如下 右击浏览器 选择属性 目标那一栏中增加如下命令 args disable
  • MQTT异步使用

    目录 1 结构体 1 1 MQTTAsync 1 2 MQTTAsync connectOptions 1 3 MQTTAsync disconnectOptions 1 4 MQTTAsync responseOptions 1 5 MQ
  • Nginx 基本优化

    一 一般来说nginx 配置文件中对优化比较有作用的为以下几项 1 worker processes 8 nginx 进程数 建议按照cpu 数目来指定 一般为它的倍数 如 2个四核的cpu计为8 2 worker cpu affinity
  • Linux常用的命令

    Linux常用的命令 1 常用的系统工作命令 1 1 执行查看帮助命令 man 命令 man 命令用来查看man命令自身的帮助信息 MAN 1 Manual pager utils MAN 1 NAME man an interface t
  • 浅谈unsigned与signed的区别

    在我们写c语言的程序中 总是能看见unsigned的关键字 unsigned的作用是声明无符号的整形类型 与signed对应 这个关键字是挺常见的 unsigned 用来声明无符号的整形变量 signed 用来声明有符号的整形变量 我们以
  • 毕业设计 2023-2024年最新计算机专业毕设选题题目推荐汇总

    文章目录 0 前言 1 java web 管理系统 毕设选题 2 java web 平台 业务系统 毕设选题 3 游戏设计 动画设计类 毕设选题 适合数媒的同学 4 算法开发 5 数据挖掘 毕设选题 6 大数据处理 云计算 区块链 毕设选题
  • AdaBoost算法讲解以及MATLAB实现

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 一 算法描述 二 算法步骤是什么 三 数据集说明 可以自己增加数据集 四 算法实现MATLAB 1 主函数 2 找到误差率最小的弱函数 3 分别计算弱分类函数 并计
  • 数据清洗(一):拉勾网数据分析案例

    1 导入数据 导入相应的包 import pandas as pd import numpy as np import matplotlib pyplot as plt matplotlib inline matplotlib inline
  • 20190417-Leetcode-409.最长回文数

    Leetcode 409 最长回文数 给定一个包含大写字母和小写字母的字符串 找到通过这些字母构造成的最长的回文串 在构造过程中 请注意区分大小写 比如 Aa 不能当做一个回文字符串 注意 假设字符串的长度不会超过 1010 示例 1 输入