力扣-115-不同的子序列
源于牛客的极米暑期服务端实习笔试题Mari和shiny
没做出来,本以为是回溯,后来想想不是这样,因为要求的子序列相对位置有限制,
稍微了解一下,子序列几乎都是动态规划,力扣就找到了加强版的这道题
直达链接
可能是做得第一道hard,二维动态规划……做不来
牛客题解
但是看牛客的题解并没有这么复杂,同时,那力扣的代码去跑也只能过40%
研究一下别人的AC代码
signed main() {
int n;
cin >> n;
getchar();
string str;
getline(cin, str);
int cnt_s = 0, cnt_h = 0, cnt_y = 0;
for (int i = 0; i < str.length(); i++) {
if (str[i] == 's') cnt_s++;
else if (str[i] == 'h') cnt_h += cnt_s;
else if (str[i] == 'y') cnt_y += cnt_h;
}
cout << cnt_y << '\n';
return 0;
}
我是傻逼