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")