进食后人(92)
查看原帖
进食后人(92)
1388362
Il1_1_3楼主2025/2/6 13:02

这份代码(来自@BH9570):

#include<bits/stdc++.h>
using namespace std;
char s[105]; 
int main () {
	int n;
	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> s[i];
	}
	int cnt = 0;
	int change = 1;
	for (int i = 0; i < n; i++) {
		if (s[i] == 'V' && s[i+1] == 'K') {
			cnt++;
			i++;
			continue;
		}
		else {
			if (s[i] == s[i+1]) {
				cnt += change;
				change = 0;
			}
		}
	}
	cout << cnt << endl;
	return 0;
}

92pts; 这份一百:

#include<bits/stdc++.h>
using namespace std;
char s[105]; 
bool vis[103];
int main () {
	int n;
	cin >> n;
	int un=0;
	for (int i = 0; i < n; i++) {
		cin >> s[i];
		if(s>0&&s[i]=='K'&&s[i-1]=='V') 
		{
		    un++;
		    vis[i]=vis[i-1]=1;
		   }
	}
	int cnt = 0;
	//int change = 1;
	for (int i = 0; i < n-1; i++) {
			if (s[i] == s[i+1]&&!vis[i]&&!vis[i+1]) {
				cnt=1;
			}
	}
	cout << cnt+un << endl;
	return 0;
}

un 是不修改的 VK 个数,最后判断有没有相邻的相同字符时要特别注意它们属不属于某一个“VK”。

比如 VKK,答案是 1,但上面的的程序会输出 2,因为 KK 的第一个 K 属于前面的 VK。

92 分是没有做到判断。

2025/2/6 13:02
加载中...