Exercícios sala de bate-papo

Tema

Vasya recentemente aprendeu a escrever e fazer logon na Internet. Ele imediatamente entrou em uma sala de chat e decidiu dizer Olá a todos. Vasya digitou a palavra s. Considera-se que Vasya conseguiu dizer Olá se várias cartas pode ser excluído da palavra digitada para que ele resultou na palavra “Olá”. Por exemplo, se vasya tipos a palavra “ahhellllloou”, será considerado que ele disse: Olá, e se ele digita “hlelo”, será considerado que Vasya tem entendido mal e ele não conseguiu dizer Olá. Determinar se Vasya conseguiu dizer Olá pelas dadas s palavra.

Entrada

A primeira e única linha contém a palavra s, que Vasya digitado. Esta
palavra consisits de pequenas letras latinas, seu comprimento é não menos que 1
e não mais de 100 cartas.

Resultado

Se Vasya conseguiu dizer Olá, imprimir “YES”, caso contrário imprimir “NÃO”.

Exemplos
de entrada

ahhellllloou

Resultado

SIM

Entrada

programa

Resultado

NÃO

Só vi essa pergunta, pensar em um personagem para cada entrada "Olá" nele para fazer uma marca, por exemplo, digite 'h "após a fazer uma marca, não só é introduzido após a tag' e 'é válido, e assim por diante, por trás do personagem é fazê-lo, para realizar um julgamento final, para ver se a entrada total "Olá".
o depurador de código resultados de depuração por um longo tempo, a amostra não é a vida ea morte por intermédio ...
Estou anexando meu Han código Han

								**错误代码**
#include<iostream>
#include<string>
using namespace std;
int main()
{
	char ch;
	int flag = 0;
	while (cin >> ch)
	{
		if (ch == 'h' && flag == 0)
			flag++; 
		if (ch == 'e' && flag == 1)
			flag ++;
		if (ch == 'l' && flag == 2)
			flag ++;
		if (ch == 'l' && flag == 3)//输入一次‘l’会被运算两次,导致代码错误
			flag ++;
		if (ch == 'o' && flag == 4)
		{ 
			flag ++; 
			break;
		}
	}
	if (flag == 5)
		cout << "YES" << endl;
	if(flag!=5)
		cout << "NO" << endl;
	return 0;
}

Pela correção Gangster, o código é agora claro que as mentiras de problema

Para este problema, um outro método pode ser usado para fazer, strings! ! ! !

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
	int n,k=0;
	char str[5] = { 'h','e','l','l','o' };
	char a[105];
	cin >> a;
	n = strlen(a);
	for (int i = 0; i < n; i++)
	{
		if (a[i] == str[k])k++;
		if (k == 5)break;
	}
	if (k == 5)cout << "YES" << endl;
	else cout << "NO" << endl;
	return 0;
}

Do questão deve prestar atenção para a conversão de pensar, ah, realmente importante. Uma maneira de nada, e começar a pensar sobre o pensamento de outro ângulo, haverá uma colheita Moe //

Publicado 14 artigos originais · ganhou elogios 18 · vista 1666

Acho que você gosta

Origin blog.csdn.net/SDAU_LGX/article/details/104760764
Recomendado
Clasificación