zoukankan      html  css  js  c++  java
  • LeetCode: 500 Keyboard Row (easy)

    题目:

    Given a List of words, return the words that can be typed using letters of alphabet on only one row's of American keyboard like the image below.

    Example 1:

    Input: ["Hello", "Alaska", "Dad", "Peace"]
    Output: ["Alaska", "Dad"]

    Note:

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

    代码:

    class Solution {
    public:
        vector<string> findWords(vector<string>& words) {
            map<char, int> m;
            vector<char> s1 = {'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'};
            vector<char> s2 = {'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'};
            vector<char> s3 = {'z', 'x', 'c', 'v', 'b', 'n', 'm'};
            for (auto c : s1)
                m.insert(pair<char, int> (c, 1));
            for (auto c : s2)
                m.insert(pair<char, int> (c, 2));
            for (auto c : s3)
                m.insert(pair<char, int> (c, 3));
                               
            vector<string> result;
            for (auto w : words){
                bool b = 1; #判断是否在一行
                char first = tolower(w[0]);
                int i = m[first];
                for (auto c : w ){
                    c = tolower(c);
                    int j = m[c];
                    if (j != i){
                        b = 0;
                        break;
                    }
                }
                if (b)
                    result.push_back(w);
             }         
            return result;
        }
    };

    别人的:

     1 class Solution {
     2 public:
     3     vector<string> findWords(vector<string>& words) {
     4         
     5         vector<string> ans;
     6         unordered_set<char> row1{ 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p' };
     7         unordered_set<char> row2{ 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l' };
     8         unordered_set<char> row3{ 'z', 'x', 'c', 'v', 'b', 'n', 'm' };
     9         
    10         for(string word:words){
    11             int one = 0, two = 0, three = 0;
    12             for(char c:word){
    13                 if(row1.count(c)) one = 1;
    14                 if(row2.count(c)) two = 1;
    15                 if(row3.count(c)) three = 1;
    16                 if(one+two+three > 1) break;
    17             }
    18             
    19             if(one + two + three == 1) ans.push_back(word);
    20         }
    21         
    22         return ans;
    23          
    24     }
    25 };
     ASCII编码:http://www.doc88.com/p-951217962470.html
  • 相关阅读:
    Average of Levels in Binary Tree
    Maximum Average Subarray I
    Integer Replacement
    Add Digits
    Binary Tree Level Order Traversal II
    Majority Element II
    Majority Element
    匿名函数
    Django的Template不支持range()函数的问题解决办法
    python文件对比利用difflib库实现文件夹下详细内容对比
  • 原文地址:https://www.cnblogs.com/llxblogs/p/7404605.html
Copyright © 2011-2022 走看看