您的位置:首页 > 其它

UVa 895 - Word Problem

2015-10-22 09:50 239 查看
題目:已知一個單詞表,然後給出一些字母構成的序列,問每個序列能構成單詞表中的幾個單詞。

分析:簡單題,字符串。記錄每個單詞中個字母出現的個數,統計每個序列中的每個字母個數。

如果序列中各字母個數都不小於對應單詞的字母個數就可以構成,計數輸出即可。

說明:使用gets讀數據輕鬆解決╮(╯▽╰)╭。

#include <cstring>
#include <cstdio>

char buf[101];
int  list[1001][26], save[26];

int main()
{
	memset(list, 0, sizeof(list));
	int count = 0;
	while (gets(buf) && buf[0] != '#') {
		for (int i = 0; buf[i]; ++ i)
			list[count][buf[i]-'a'] ++;
		count ++;
	}
	
	while (gets(buf) && buf[0] != '#') {
		for (int i = 0; i < 26; ++ i)
			save[i] = 0;
		for (int i = 0; buf[i]; ++ i)
			if (buf[i] >= 'a' && buf[i] <= 'z')
				save[buf[i]-'a'] ++;
		
		int sum = 0;
		for (int i = 0; i < count; ++ i) {
			int flag = 1;
			for (int j = 0; j < 26; ++ j)
				if (list[i][j] > save[j])
					flag = 0;
			if (flag) sum ++;
		}
		printf("%d\n",sum);
	}
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: