1035 - 晚餐

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

小明请好朋友们来家里吃晚饭,但是厨房里的餐具不够了,于是小明到仓库里找新餐具。仓库里的东西都是装在一个个箱子里,箱子上面写着里面装的什么东西,现在小明想请你帮忙找出这些装餐具的箱子。
题目中的餐具只包含:碗(bowl),刀(knife),叉(fork),筷子(chopsticks)。

题目输入

输入包含多组测试数据。每组先输入一个整数N,表示仓库里有N个箱子。
然后输入N个字符串,分别表示箱子里装的是什么东西。

题目输出

对于每组输入,输出仓库里所有餐具的名字。

输入/输出样例

输入格式

3 basketball fork chopsticks
2 bowl letter

输出格式

fork chopsticks
bowl

C语言解答

#include<stdio.h>
#include<string.h>
 
char tw[4][15]={"bowl","knife","fork","chopsticks"};
 
int main()
{
	int n,i,c;
	char s[15];
	while(scanf("%d",&n)!=EOF)
	{
		c=0;
		while(n--)
		{
			scanf("%s",s);
			for(i=0;i<4;i++)
				if(!strcmp(s,tw[i]))
				{
					c++;
					if(c==1)
						printf("%s",s);
					else
						printf(" %s",s);
					break;
				}
		}
		printf("\n");
	}
	return 0;
}

C++解答

#include<stdio.h>
#include<string.h>
 
char tw[4][15]={"bowl","knife","fork","chopsticks"};
 
int main()
{
	int n,i,c;
	char s[15];
	while(scanf("%d",&n)!=EOF)
	{
		c=0;
		while(n--)
		{
			scanf("%s",s);
			for(i=0;i<4;i++)
				if(!strcmp(s,tw[i]))
				{
					c++;
					if(c==1)
						printf("%s",s);
					else
						printf(" %s",s);
					break;
				}
		}
		printf("\n");
	}
	return 0;
}

Java解答

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		final String[] cooks = {"bowl", "knife", "fork", "chopsticks"};
		while(in.hasNext()){
			int n = in.nextInt();
			String[] ss = new String[n];
			StringBuffer sb = new StringBuffer();
			for(String s:ss){
				s = in.next();
				for(String tem:cooks)
					if(s.equals(tem))
						sb.append(" ").append(s);
			}
			System.out.println(sb.toString().substring(1));
		}
		
		
		
	}

}

Python解答

import sys
T = ['bowl','knife','fork','chopsticks']
for line in sys.stdin:
    data = line.split()
    B=map(lambda x:x if x in T else '',data)
    print (' '.join([i for i in B])).strip()