409. Longest Palindrome

原题链接:https://leetcode.com/problems/longest-palindrome/
原题:
Given a string which consists of lowercase or uppercase letters, find the length of the longest palindromes that can be built with those letters.

This is case sensitive, for example “Aa” is not considered a palindrome here.

Note:
Assume the length of given string will not exceed 1,010.

样例:

Input:
"abccccdd"

Output:
7

Explanation:
One longest palindrome that can be built is "dccaccd", whose length is 7.

题意:
就是给你一个字符串,问你里面最长的回文数的长度是多少?
回文数:中心对称的一个字符串。

解题思路:
回文数可以是偶数个,然后每个数字出现两次,也可以是奇数个,某个数字单独出现一次。
所以,这里我们可以用到一个容器set,set里面不允许出现两个一样的值,可以通过find函数来查找set里面是否有某个值,没有,则返回这个set的末尾位置。insert函数用于插入数据,erase是擦除函数。
具体可以看这里:set的具体用法

AC代码:

class Solution {
public:
    int longestPalindrome(string s) {
       set<int> set_t;
       int length=0;
       for(char a:s){
           if(set_t.find(a)!=set_t.end()){
               length+=2;
               set_t.erase(a);
           }
           else{
               set_t.insert(a);
           }
       }
       return set_t.size()>0?length+1:length;

    }
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值