首页 > 其他 > 详细

[题记]最长回文串-leetcode

时间:2020-03-19 15:10:49      阅读:46      评论:0      收藏:0      [点我收藏+]

题目:最长回文串

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

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

注意:
假设字符串的长度不会超过 1010。

示例 1:

输入:
"abccccdd"

输出:
7

解释:
我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。


思想:
  1. 记录串中的所有字母的个数,所有字母只取它的偶数次
  2. 如果最后的出来的长度 ans < 原来的串的长度len 那么就让ans+1,否则输出ans

代码(c):

int longestPalindrome(char * s) {

    int number[60] = {0};
    int len = strlen(s);
    int ans = 0;
    
    for( int i = 0; i < len; i++ ) {

        number[s[i]-A] += 1;//统计字母个数
    }
    for( int i = 0; i < 60; i++ ) {

        ans += number[i] - number[i]%2;//统计回文串长度
    }
    
    return ans < len ? ans+1 : ans;//输出
}

2020-03-19-14:19:02

[题记]最长回文串-leetcode

原文:https://www.cnblogs.com/Sxccz/p/leetcode_2.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!