其他分享
首页 > 其他分享> > 给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。 美式键盘 中: 第一行由字符 “qwertyuiop“ 组成。 第二行由字符 “asdf

给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。 美式键盘 中: 第一行由字符 “qwertyuiop“ 组成。 第二行由字符 “asdf

作者:互联网

class Solution {

public:

    unordered_set<char> set1 = {'q', 'w', 'e', 'r', 't', 'y','u', 'i', 'o', 'p'};

    unordered_set<char> set2 = {'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'};

    unordered_set<char> set3 = {'z', 'x', 'c', 'v', 'b', 'n', 'm'};

    vector<string> findWords(vector<string>& words) {

        vector<string> res;

        for (auto& str: words) {

            bool flag = false;

            if (set1.count(tolower(str[0]))) {

                flag = check(str, set1);

            } else if (set2.count(tolower(str[0]))) {

                flag = check(str, set2);

            } else if (set3.count(tolower(str[0]))) {

                flag = check(str, set3);

            }   

            if (flag) {

                res.push_back(str);

            }

        }

        return res;

    }

    

    bool check(string str, unordered_set<char> set){

        transform(str.begin(),str.end(),str.begin(),::tolower);

        for (int i = 1; i < str.length(); i++) {

            if (!set.count(str[i])) {

                return false;

            }

        }

        return true;

    }

};

标签:字符,set,tolower,美式,check,键盘,flag,str,unordered
来源: https://blog.csdn.net/vegeta98/article/details/121068559