No.6 week 9 Keyboard Row

1、Description



Note:

You may use one character in the keyboard more than once.
You may assume the input string will only contain letters of alphabet


2.How to Solve
思路很简单,
1) 将input的words都先存进words这个vector容器里面,以便接下来一个一个单词检查。
2)符合题目描述的单词要么是键盘第一行,要么是第二行,要么是第三行。所以先将键盘上的character分为三组,分别存进unordered_set(无序的集合)里面,再用一个名称为rows的vector来统一管理这三个字母分组。

3)准备工作都做好之后,就要开始将words里面的单词一个一个匹配,看看属于哪一行键盘。每个单词的匹配工作当然是从这个单词的第一个字母开始,通过count函数在三行键盘这个小循环里面先确定该单词的第一个字母属于哪一行,找到该行后先假设该单词就是属于这一行键盘的,于是将该单词push_back进我们的result也就是validWords。

4)当然工作没有结束,我们只检查了这个单词的第一个字母。于是接下来的工作就是开始另外一个小循环,将该单词的剩下所有字母一一与该行匹配,只要有一个字母不符合,就立即将该单词从validWords里pop_back。

5)每个单词都匹配完成后返回validWords。


猜你喜欢

转载自blog.csdn.net/its_noah/article/details/67656869