栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

LeetCode--500. 键盘行(C++描述)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LeetCode--500. 键盘行(C++描述)

// Source : https://leetcode-cn.com/problems/keyboard-row/
// Date : 2021-10-12

题目描述:

题目分析:由于题目的提示说到word[i]的字符会包含大写和小写,因此我们在初始化键盘的字符的时候需要将大小写全部初始化,然后比较的时候,只要word的字符有大写或者小写的话,就将该计数器自增,然后比较完该字符的时候需要比较计数器和该字符的长度,如果相等的话,就将该字符加入结果数组。

代码:

class Solution {
public:
    vector findWords(vector& words) 
    {
        vector v;
        //将待查字符串的大小写都初始化
	    string str1 = "qwertyuiop", str2 = "asdfghjkl", str3 = "zxcvbnm",
        str4="QWERTYUIOP", str5="ASDFGHJKL", str6="ZXCVBNM";
        //比较每一个单词
        for (int i = 0; i < words.size(); i++)
        {
            //count1、count2、count3分别用于计数第一、二、三行键盘元素的个数
            int count1 = 0, count2 = 0, count3 = 0;
            //比较该单词的每一个字符
            for (int j = 0; j < words[i].size(); j++)
            {
                //如果存在字符,就把字符串自增
                if (str1.find(words[i][j]) != -1||str4.find(words[i][j])!=-1)
                    count1++;              
                if (str2.find(words[i][j] )!=-1|| str5.find(words[i][j]) != -1) 
                    count2++;                
                if (str3.find(words[i][j]) != -1 || str6.find(words[i][j]) != -1)
                    count3++;                
            }
            //如果存在相同字母的次数与word[i]的长度相同,则表示可由一行打出
            if (count1 == words[i].size() || count2 == words[i].size() || count3 == words[i].size())
                v.push_back(words[i]);
        }
        return v;
    }
};
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/316531.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号