P3741honoka的键盘

2023-12-25 17:47:39

一:题目

二:思路分析

1.这道题的关键是读懂题目,代码并不难,重点关注题目的这句话

2.题目中所以后面的那句话,我们可以提取出两个信息:

? ?2.1.只有V和K相邻时才认为出现了VK,KV不可以

? 2.2她可以改变一个字符,使VK出现的次数最多,我们可以改变的是:VV和KK

3.代码设计:

? ?3.1先循环一遍,找出VK出现的次数

? ?3.2再将找到的VK换成其他字符,避免对下一次找VV和KK形成干扰

? ? 3.3再循环一次找有咩有KK或者VV,有就将它们改成VK,记住只能改一次,改完就跳出循环

三:代码

#include <stdio.h>
int main()
{
	int n = 0;
	int i = 0,cont=0;
	scanf("%d", &n);
	char s[100] = { 0 };
	scanf("%s", s);
		for (i = 0; i < n-1; i++)
		{
			if (s[i] == 'V' && s[i + 1] == 'K')
			{
				cont++;
				s[i] = 'X';
				s[i + 1] = 'X';
			}
		}
		for (i = 0; i < n-1; i++)
		{
			if (s[i] == 'V' && s[i + 1] == 'V')
			{
				cont++;
				s[i + 1] = 'K';
				break;
			}
			if (s[i] == 'K' && s[i + 1] == 'K')
			{
				s[i] = 'V';
				cont++;
				break;
			}
		}
		printf("%d", cont);
	return 0;
}

文章来源:https://blog.csdn.net/2301_80096514/article/details/135202552
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。