题解 | 小红的双生串

小红的双生串

https://www.nowcoder.com/practice/099d6681234d4e3e95c0e0ade31929da

#include <iostream>
#include <bits/stdc++.h>
const int N = 2e5+9;
using namespace std;
char s[N],s1[N],s2[N];

int majority(char s[])
{
    unordered_map<char,int> um;
    //投票算法,或者hash表
    for(int i=0;i<strlen(s);i++)
    {
        um[s[i]]++;     
    }
    int max1 = 0;
    for(int i=0;i<strlen(s);i++)
    {
        max1 = max(um[s[i]],max1);
    }
    return strlen(s) - max1;
}

int main() 
{
    cin>>(s+1);
    int n = strlen(s+1);
    // cout<<n<<endl;
    int mid = n/2;
    for(int i=1;i<=mid;i++)s1[i] = s[i];
    for(int i=mid+1;i<=n;i++)s2[i] = s[i];  
    
    int l = majority(s1+1);
    int r = majority(s2+mid+1);
    cout<<l+r<<endl;
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

牛至超人:哈工大已经很棒了,不需要加括号了,然后咋没有实习经历呢?火速趁寒假整一段实习,导师不让就狠狠肘击
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务