列表

详情


NC216130. 阴阳怪气的宿舍

描述

最近,阴阳怪气的风气开始在HL的宿舍盛行,无论哪个人说什么,其他人就会说:“不会吧?不会吧?不会有人......”;无论哪个人做什么,其他人就会说:“就这?就这?”

有一天,他们又在相互阴阳怪气了。

qh:就这?

sh:就这?这也好意思说就这?

hl:不会吧?不会有人这就开始阴阳怪气了吧?

xx:不会吧?不会有人阴阳怪气别人阴阳怪气吧?” 

kt:不会吧?不会有人说话总是阴阳怪气吧?
   
大家都看向了kt,他们突然都很想知道,平时是谁阴阳怪气的话说得最多,于是他们拿出了寝室录音机.....
   
录音机的内容是5个只包含小写字母的字符串,分别表示qh,hl,sh,xx,kt平时说的话,现在他们想让你帮忙统计一下每个人说的话中,“buhuiba”“jiuzhe”这两个子串的个数,并告诉他们谁阴阳怪气的话说的最多。

提示:字符串中任意个连续的字符组成的子序列称为该串的子串,如bcdabcde的子串,而ace不是。

输入描述

Input:

输入有5行,每行一个长度不超过1000的字符串,仅由小写字母组成,每个字符串分别按顺序代表qh,sh,hl,xx,kt说的话。

输出描述

Output:

输出包含6行,前5行每行输出qh,sh,hl,xx,kt话中”buhuiba”和”jiuzhe”的个数,以空格分隔,第6行输出说阴阳怪气的话数量最多的人的名字,如果有多个人数量一样,则输出”yygqdss”。

示例1

输入:

buhuibabuhuiba
jiuzhe
buhuibajiuzhe
jiuzhejiuzhebuhuiba
abaaba

输出:

qh 2 0
sh 0 1
hl 1 1
xx 1 2
kt 0 0
xx

原站题解

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

C++(clang++11) 解法, 执行用时: 4ms, 内存消耗: 376K, 提交时间: 2021-01-01 13:39:32

#include<bits/stdc++.h>
using namespace std;
string s, maxname, name[] = {"qh", "sh", "hl", "xx", "kt"};
int a, b, maxx, pos = 0;
vector<int>vt;
int main()
{
	for(int i = 0; i < 5; i++)
	{
		cin >> s;
		for(a = 0, pos = 0; (pos=s.find("buhuiba", pos)) != -1; a++, pos++);
		for(b = 0, pos = 0; (pos=s.find("jiuzhe", pos)) != -1; b++, pos++);
		cout << name[i] << " " << a << " " << b << "\n";
		vt.push_back(a+b);
		if(a + b > maxx)
		{
			maxx = a + b;
			maxname = name[i];
		}
	}
	cout << (count(vt.begin(), vt.end(), maxx) > 1 ? "yygqdss" : maxname);
}

pypy3 解法, 执行用时: 122ms, 内存消耗: 26244K, 提交时间: 2021-12-20 15:53:37

name = [ "qh" , "sh" , "hl" , "xx" , "kt" ]
val = []
flag = 0
res = ""
resval = 0

for i in range( 0 , 5 ):
    s = input()
    a = s.count("buhuiba")
    b = s.count("jiuzhe")
    print( "{} {} {}".format( name[i] , a , b ) )
    if a + b > resval:
        res = name[i]
        resval = a + b
        flag = 0
    elif a + b == resval:
        flag = 1

if flag:
    print( "yygqdss" )
else :
    print( res )

Python3(3.9) 解法, 执行用时: 19ms, 内存消耗: 2812K, 提交时间: 2021-01-01 22:36:16

l=[]
c=0
N=['qh', 'sh', 'hl', 'xx', 'kt']
for i in range(5):
    s=input()
    a=s.count("buhuiba")
    b=s.count("jiuzhe")
    l.append(a+b)
    if a+b>c:
        c=a+b
        n=N[i]
    print(N[i], a, b)
print("yygqdss"if(l.count(c)>1)else n)

上一题