Datawhale模拟面试每日打卡 day-10 409. 最长回文串

在这里插入图片描述

解题思路:

  • 本题要求仅仅需要返回最长的回文串长度即可,所以里面的顺序问题不需要考虑。从题目中可以发现,当某一个字母是偶数个数的时候一定可以作为最长回文串中的元素,但当某一个元素是奇数个数的时候,其中偶数个一定可以作为最长回文串中的元素,而且可以选择任意一个奇数个的元素作为中间值。
#include<unordered_map>
class Solution {
public:
    int longestPalindrome(string s) {
    //无序map实际上是C++11中添加的,类似于Hashmap采用散列表的形式进行存储
       unordered_map<char,int>umap;
       int res = 0;
       for(char c : s){
            //遍历重复自动加1
            ++umap[c];
       }
       for(auto p : umap){
            //整除计算分布个数
            res += p.second/2*2;
            //只取任意一个奇数作为中间值
            if(res % 2 == 0 && p.second % 2 ==1){
                res += 1;
            }
       }
       return res;
    }
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
void welcome() { printf("**********欢迎使用管理系统*************\n"); //以不同的角色进行登录系统 printf("1.管理员身份登录\n"); printf("2.普通用户学生登录\n"); printf("3.退出\n"); printf("******************************************\n"); } //管理员的菜单界面 void mangeview() { printf("**********欢迎管理员登录********\n"); printf("-----------------1.注册学生信息------------------\n"); printf("-----------------2.输出学生信息------------------\n"); printf("-----------------3.删除学生信息------------------\n"); printf("-----------------4.修改学生信息------------------\n"); printf("-----------------5.查询学生信息------------------\n"); printf("-----------------6.学生请假和补卡------------------\n"); printf("-----------------7.排序(姓名、学号、打卡次数)--\n"); printf("-----------------8.考勤数据统计------------------\n"); printf("-----------------9.返回------o( ̄ヘ ̄o#)----\n"); //........ printf("********************************\n"); } //普通用户界面 //普通用户界面提示 void comuser(){ printf("************欢迎学生登录************\n"); printf("-----------------1.录入学生信息------------------\n"); printf("-----------------2.输出学生信息------------------\n"); printf("-----------------3.查询学生信息------------------\n"); printf("-----------------4.排序(姓名、学号、打卡次数)--\n"); printf("-----------------5.学生请假和补卡------------------\n"); printf("-----------------6.返回------o( ̄ヘ ̄o#)----\n"); printf("********************************************\n"); } 这个代码怎么描述,运用了什么函数
06-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值