做平台的网站有哪些,如何写营销策划方案,邯郸超速云_网站建设,信誉好的合肥网站推广文章目录1. 题目2. 解题1. 题目
链接#xff1a;https://ac.nowcoder.com/acm/contest/9715/B 来源#xff1a;牛客网
给出一个仅包含小写字母的字符串s#xff0c;你最多可以操作k次#xff0c;使得任意一个小写字母变为与其相邻的小写字母#xff08;ASCII码差值的绝对…
文章目录1. 题目2. 解题1. 题目
链接https://ac.nowcoder.com/acm/contest/9715/B 来源牛客网
给出一个仅包含小写字母的字符串s你最多可以操作k次使得任意一个小写字母变为与其相邻的小写字母ASCII码差值的绝对值为1请你求出可能的最长相等子序列即求这个字符串修改至多k次后的的一个最长子序列且需要保证这个子序列中每个字母相等。
子序列从原字符串中取任意多个字母按照先后顺序构成的新的字符串。
示例1
输入
2,abcde
返回值
3示例2
输入
10,acesxd
返回值
4备注:
2. 解题
class Solution {
public:/*** * param k int整型 表示最多的操作次数* param s string字符串 表示一个仅包含小写字母的字符串* return int整型*/int string2(int k, string s) {// write code heretypedef pairint,int pii;vectorint count(26, 0);for(auto c : s)count[c-a]; //计数int maxlen 0;for(int i 0; i 26; i){vectorpii cost(26);for(int j 0; j 26; j)cost[j] {abs(i-j), j};//cost花费, idxint num k, len 0;sort(cost.begin(), cost.end());//花费小的优先for(int j 0; j 26 num 0; j){int ct cost[j].first;//花费int id cost[j].second;//字符idif(count[id] 0)//字符没有的continue;if(ct 0)//花费为0的{len count[id];continue;}int add min(num/ct, count[id]);//可以拿的字符个数len add;num - add*ct;}maxlen max(maxlen, len);}return maxlen;}
};我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号Michael阿明一起加油、一起学习进步