美文网首页
500. Keyboard Row

500. Keyboard Row

作者: XYZ7 | 来源:发表于2017-03-01 15:04 被阅读0次
  1. 思路
    将同一行的英文字符映射为Map中的同一值,只要比较每个String中的每个字符的Map映射值是否一致即可。

  2. 代码

#include <iostream>
#include <map>
#include <vector>

using namespace std;

class Solution {
public:
    vector<string> findWords(vector<string>& words) {
        vector<string> output;
        vector<char> line1 = {'Q','W','E','R','T','Y','U','I','O','P',
                              'q','w','e','r','t','y','u','i','o','p'
        };
        vector<char> line2 = {'A','S','D','F','G','H','J','K','L',
                              'a','s','d','f','g','h','j','k','l'
        };
        vector<char> line3 = {'Z','X','C','V','B','N','M',
                              'z','x','c','v','b','n','m'
        };
        
        map<char,int> charMap;
        for(int i = 0 ; i < line1.size() ; i++)
            charMap[line1[i]] = 1;
        for(int i = 0 ; i < line2.size() ; i++)
            charMap[line2[i]] = 2;
        for(int i = 0 ; i < line3.size() ; i++)
            charMap[line3[i]] = 3;
        
        for(int i = 0 ; i < words.size() ; i++) {
            int flag = charMap[words[i][0]];
            
            int j = 1;
            for( ; j < words[i].size() ; j++)
                if(charMap[words[i][j]] != flag)
                    break;
            if(j == words[i].size())
                output.push_back(words[i]);
        }
        return output;
    }
};

int main(int argc, const char * argv[]) {
    
    vector<vector<char>> board ;
    vector<string> input= {"Hello", "Alaska", "Dad", "Peace"};
    Solution s ;
    
    vector<string> output = s.findWords(input);
    for(int i = 0 ; i < output.size() ; i++)
        cout<<output[i]<<endl;
    
    return 0;
}

相关文章

  • 500. 键盘行、26. 删除有序数组中的重复项

    500. 键盘行[https://leetcode-cn.com/problems/keyboard-row/] ...

  • 500. Keyboard Row

    原题地址: https://leetcode.com/problems/keyboard-row/descript...

  • 500. Keyboard Row

    啊呀窝草。。尼玛JAVA写的真是烦啊,还不如去写Python算了,人家五六行我得30行。

  • 500. Keyboard Row

    Given a List of words, return the words that can be typed...

  • 500. Keyboard Row

    解法一 使用HashMap 之所以会想到用HashMap是因为对于每个字母,若使用HashMap的方式去查找只有O...

  • 500. Keyboard Row

    Given a List of words, return the words that can be typed...

  • 500. Keyboard Row

    Given a List of words, return the words that can be typed...

  • 500. Keyboard Row

    题目描述:题目描述倒是很简单,给出一个键盘,需要我们判断,给出的一个String[]里面的单词中,每一个单词是否都...

  • 500. Keyboard Row

    思路将同一行的英文字符映射为Map中的同一值,只要比较每个String中的每个字符的Map映射值是否一致即可。 代码

  • [LeetCode]500. Keyboard Row

    题目 Given a List of words, return the words that can be ty...

网友评论

      本文标题:500. Keyboard Row

      本文链接:https://www.haomeiwen.com/subject/bgaqgttx.html