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

LeetCode刷题记录(2)

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

LeetCode刷题记录(2)

跟着英雄哥6月集训——6.2

文章目录
  • 题目链接:
    • 一、2278. 字母在字符串中的百分比
          • 1.简单:
    • 二、551. 学生出勤记录 I
          • 1.利用find()函数:
    • 三、2255. 统计是给定字符串前缀的字符串数目
          • 1.利用前缀和:
    • 四、1071. 字符串的最大公因子
          • 1.利用字符串的长度关系:
  • 总结


题目链接:

六月2日数组题目
2278. 字母在字符串中的百分比
551. 学生出勤记录 I
2255. 统计是给定字符串前缀的字符串数目
1071. 字符串的最大公因子

一、2278. 字母在字符串中的百分比 1.简单:
class Solution {
public:
    int percentageLetter(string s, char letter) {
        int len = s.length();
        int num = 0;
        for(int i = 0; i < len; i++)
            if(letter == s[i])
                num++;
        return (1.0*num/len)*100;
    }
};
二、551. 学生出勤记录 I 1.利用find()函数:

find(str , x)函数,从X位置开始找str字符串,如果找到返回str所在的第一个位置,如果找不到,返回一个无穷大的数。

class Solution {
public:
    bool checkRecord(string s) {
        int len = s.size();
        if(s.find("LLL") < len){//找到LLL就得false
            return false;
        } 
        if(s.find('A') < len ){//假如找到一个A
            int x = s.find('A');
            if(s.find('A',x+1) < len){//从找到A的位置接着找A
                return false;
            }
        }    
        return true;
    }
};
三、2255. 统计是给定字符串前缀的字符串数目 1.利用前缀和:

利用前缀和把所有的字串求出来,和words一个一个比较

class Solution {
public:
    int countPrefixes(vector& words, string s) {
        int len = s.size();
        vector pres(len+1);
        for(int i = 0; i < len; i++){
            pres[i+1] = pres[i] + s[i];
        }
        int ans = 0;
        for(int i = 0; i < words.size(); i++){
            for(int j = 0; j < len+1; j++){
                if(words[i] == pres[j])
                {
                    ans++;
                    break;
                }
            }
        }
        return ans;
    }
};
四、1071. 字符串的最大公因子 1.利用字符串的长度关系:

这个题目的要发现两个字符串的长度,如果存在某一个字符串A可以整除着两个字符串,那么说明A一定是这两个字符串的共同字串,那么这两个字符串的长度一定是都是A长度的倍数,不难发现A的长度就是另外两个字符串长度的最大公约数。

class Solution {
public:
    bool check(string s,string t){//检查是否可以整除
        int len1 = s.size();//是否可以被整除的字符串
        int len2 = t.size();//要求的字符串
        int n = len1/len2;
        string ans = "";
        for(int i = 0; i < n; i++){
            ans += t;
        }
        return ans == s;
    }
    string gcdOfStrings(string str1, string str2) {
        int n = __gcd(str1.size(),str2.size());//求出二者的最大公约数
        string X = "";
        for(int i = 0; i < n; i++){
            X += str1[i];
        }
        if(check(str1,X) && check(str2,X)){
            return X;
        }
        else{
            return "";
        }
    }
};
总结

今天的字符串都挺简单的

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/948086.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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