力扣-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;
}

我是傻逼

posted @ 2022-07-26 11:12  YaosGHC  阅读(71)  评论(0)    收藏  举报