zoukankan      html  css  js  c++  java
  • 【Leetcode】 最长回文串(每日一题)

    题目链接:最长回文串


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

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

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


    题解:啊这里看题啊,我还不知道为啥标的简单。。这里是让你构造回文串。

    所以我们直接用map统计一下字符个数。偶数个直接相加,奇数个-1再相加。

    如果出现有奇数个的字符,标记一下,最后+1。因为回文串只能出现一次奇数个字符嘛。


    代码:

     1 class Solution {
     2 public:
     3     int longestPalindrome(string s) {
     4         map<char,int>mp;
     5         int len = s.size();
     6 
     7         for(int i = 0; i < len ;i++){
     8             mp[s[i]]++;
     9         }
    10 
    11         int cnt = 0;
    12         int flag = 0;
    13 
    14         map<char,int>::iterator iter;
    15         for(iter = mp.begin(); iter != mp.end();iter++){
    16             if(iter->second % 2){
    17                 cnt += iter->second-1;
    18                 flag = 1;
    19             }
    20                 
    21             else
    22                 cnt += iter->second;
    23         }
    24 
    25         cnt += flag;
    26 
    27         return cnt;
    28     }
    29 };
  • 相关阅读:
    SQLyog
    远程连接设置
    [转]Oracle/Altibase数据库中Sequence的用法
    worklight 初识
    C# Excel
    C#+AE 叠加分析
    Model Buider中 List和Series的区别[转]
    动态分段
    优化工具箱概述
    创建栅格数据
  • 原文地址:https://www.cnblogs.com/Asumi/p/12527887.html
Copyright © 2011-2022 走看看