做暧暧视频网站w,个人简历网页制作教程,wordpress 8211,昆明网站营销文章目录1. 题目2. 解题1. 题目
描述 如果字符串的所有字符出现的次数相同#xff0c;则认为该字符串是有效的。 如果我们可以在字符串的某1个索引处删除1个字符#xff0c;并且其余字符出现的次数相同#xff0c;那么它也是有效的。 给定一个字符串s#xff0c;判断它是否…
文章目录1. 题目2. 解题1. 题目
描述 如果字符串的所有字符出现的次数相同则认为该字符串是有效的。 如果我们可以在字符串的某1个索引处删除1个字符并且其余字符出现的次数相同那么它也是有效的。 给定一个字符串s判断它是否有效。如果是返回YES否则返回NO。
1 ≤ |s| ≤ 100000 Each character s[i] ∈{‘a - ’z}示例
示例输入1aabbcd
示例输出1NO
解释1
我们需要删除两个字符c和d — aabb 或者 a和b — abcd使其有效。
而我们只能删除一个字符所以它是 NO。示例输入2aabbccc
示例输出2YES
解释2
除 c 出现三次外其他所有字符都出现两次。
我们可以删除一个 c 来获得一个有效的字符串所以它是 YES。来源https://tianchi.aliyun.com/oj/141758389886413149/160295184768372894
2. 解题
class Solution {
public:/*** param s: a String* return: if valid return YES else return NO*/string isValid(string s) {// write your code hereunordered_mapchar, int m;for(char c : s)m[c];mapint, int count;for(auto mi : m)count[mi.second];if(count.size() 2)return NO;if(count.size() 1)return YES;// 有两种数量int a count.begin()-first, b count.rbegin()-first;int n1 count.begin()-second;int n2 count.rbegin()-second;if(n1 1 a1)//删除唯一1个出现一次的个数少的那个aabbcreturn YES;if(b-a1 n2 1)//删除唯一1个出现一次的个数多的那个且 两者长度相差1return YES;return NO;}
};50ms C 我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号Michael阿明一起加油、一起学习进步