当前位置:   article > 正文

拼写单词_有一个字符串数组words和一个字符串chars。 假如可以用chars中的字母拼写出words

有一个字符串数组words和一个字符串chars。 假如可以用chars中的字母拼写出words

题目:
给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写时,chars 中的每个字母都只能用一次。返回词汇表 words 中你掌握的所有单词的长度之和。
示例
示例 1:

输入:words = [“cat”,“bt”,“hat”,“tree”], chars = “atach”
输出:6
解释: 可以形成字符串 “cat” 和 “hat”,所以答案是 3 + 3 = 6。

示例 2:

输入:words = [“hello”,“world”,“leetcode”], chars = “welldonehoneyr”
输出:10
解释:可以形成字符串 “hello” 和 “world”,所以答案是 5 + 5 = 10。

思想:数组a[26]的下标对应字母的ASCII码值(统一减‘a’则a就会在0号下标存储),数组中存放出现次数,把词汇表和字母表中的次数进行比较即可。

  • 分别把词汇表和字母表中的字母出现次数存储到数组中。词汇表一个数组,字母表中的每个单词都需要一个数组,所以需要词汇表的数组循环和字母表的每个字母数组进行比较。
  • 若字母表中的出现次数大于词汇表的表示可以学习,则count++。
  • 不大于每次把count重新置为0,fin表示最后的字母个数。
  • 需要注意的是字母和词汇表进行比较时,词汇表的字母每次只能用一次,但不同字母之间可以多次,如: word[“hello”,“wl”] chars[ellhow] 最后的长度为7,可以看到总共需要3个l,但是字母表只有2个,原因是:字母表是大家共用的,不会因为hello用了2个ll,wl就没有l了,但如果是wlll那么就不行,因为字母表没有3个让你用,所以每次字母表和字母比较后不用变。
    举例如下:
    在这里插入图片描述
    根据思路,写出代码。
    代码:
int countCharacters(vector<string>& words, string chars) 
{
	int c[26]={0};
	int count=0;
	int fin=0;
	for(int i=0;i<chars.size();i++)
	{
		c[chars[i]-'a']+=1;//字母表字母出现次数存储。-a才可以从下标0开始存储
	}
	for(string s:words)//循环和词汇表的单词进行比较
	{
		
		int temp[26]={0};
		for(int i=0;i<s.length();i++)//循环判断是否可以表示字母中的每一个字符
		{
			temp[s[i]-'a']+=1;
			if(c[s[i]-'a']>=temp[s[i]-'a'])//大于表示可以表示
			{
				count++;
			}
			else
			{
				count=0;
				break;

			}	
		}
		fin+=count;//最后结果
		count=0;
	}
	return fin;
}
int main()
{
	vector<string>words;
	string chars="atach";
	words.push_back("cat");
	words.push_back("hat");
	words.push_back("tree");
	cout<<countCharacters(words,chars);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

加油哦!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/705305
推荐阅读
相关标签