2207 字符串中最多数目的子序列
本题要找pattern在text出现的次数 然后在插入pattern中的一个字符 得到更多的出现次数 很容易想到先求出不插入字符前 子序列出现的次数
我们可以用遍历的方式 让pattern[0]为x pattern[1]为y 遍历text遇到x让x数目加1 遇到y让y数目加1 总数ans+=x的数目(如果pattern中为两个相同的字符怎么办? 我们肯定不能先执行x那段逻辑 要先执行y这段逻辑)
最后text在开头或者结尾插入字符 根据x,y的数目插入
class Solution {
public:
long long maximumSubsequenceCount(string text, string pattern) {
long long ans=0;
char x=pattern[0],y=pattern[1];
int numx=0,numy=0;
for(char c:text){
if(c==y){
ans+=numx;
numy++;
}
if(c==x){
numx++;
}
}
ans+=max(numx,numy);
return ans;
}
};