列表

详情


NC200209. 小乔和小灰灰

描述

小乔和小灰灰是好朋友,现在如果一个字符串中同时出现子序列,那么小乔和小灰灰都会感到开心。

子序列的定义就是存在任意下标,那么就构成的一个子序列。如的子序列有

输入描述

输入包含一行一个字符串
字符串中仅包含大写字母和小写字母

输出描述

如果这个串会让小乔和小灰灰都感到开心,那么输出,否则输出

示例1

输入:

XiaoQiaoheHuiHui

输出:

Happy

示例2

输入:

Xiaohuihuihexiaoqiao

输出:

emm

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++11(clang++ 3.9) 解法, 执行用时: 4ms, 内存消耗: 612K, 提交时间: 2020-03-19 21:58:17

#include<iostream>
using namespace std;
const string a="XiaoQiao",b="XiaoHuiHui";
int main()
{
	string c;
	cin>>c;
	int i=0,j=0;
	for(int k=0;c[k]!='\0';k++)
	{
		if(i<8&&a[i]==c[k]) i++;
		if(j<10&&b[j]==c[k]) j++;
	}
	printf(i==8&&j==10?"Happy":"emm");
	return 0;
}

C++14(g++5.4) 解法, 执行用时: 3ms, 内存消耗: 504K, 提交时间: 2020-03-13 21:07:12

#include<iostream>
using namespace std;
const string a="XiaoQiao",b="XiaoHuiHui";
int main()
{
	string c;
	cin>>c;
	int i=0,j=0;
	for(int k=0;c[k]!='\0';k++)
	{
		if(i<8&&a[i]==c[k])i++;
		if(j<10&&b[j]==c[k])j++;
	}
	printf(i==8&&j==10?"Happy":"emm");
	return 0;	
}

pypy3(pypy3.6.1) 解法, 执行用时: 58ms, 内存消耗: 18912K, 提交时间: 2020-03-13 22:29:59

s = input()
def fun(s,p):
    index = 0
    for k in s:
        if(k==p[index]):
            index+=1
        if(index==len(p)):
            return True
    return False
if(fun(s,"XiaoQiao") and fun(s,"XiaoHuiHui")):
    print("Happy")
else:
    print("emm")

C 解法, 执行用时: 2ms, 内存消耗: 364K, 提交时间: 2023-03-26 20:41:31

#include<stdio.h>
int main(){
	int i=0,j=0,k=0;
	char s[1005],s1[10]="XiaoQiao",s2[15]="XiaoHuiHui";
	scanf("%s",s);
	for(;s[i]!='\0';i++){
		if(s[i]==s1[j]) j++;
		if(s[i]==s2[k]) k++;
	}
	if(j==8&&k==10) printf("Happy");
	else printf("emm");
}

Python3 解法, 执行用时: 42ms, 内存消耗: 4720K, 提交时间: 2022-04-17 19:58:25

a="XiaoQiao "
b="XiaoHuiHui "
aa=bb=0
for s in input():
    if s==a[aa]:aa+=1
    if s==b[bb]:bb+=1
print("Happy" if aa==8 and bb==10 else "emm")

上一题