资讯专栏INFORMATION COLUMN

力扣1812,LCP17,2011,1876,520,709,1704,1844,1805题解

widuu / 2117人阅读

摘要:检测大写字母题目链接循环判断第一个字母可以是大写或小写,所以我们先不对第一个字母进行判断。转换成小写字母题目链接循环判断循环判断整个字符串,如果发现当前字符是大写的,就将其转为小写。

1812. 判断国际象棋棋盘中一个格子的颜色

题目链接

找规律

很明显这道题具有很强的规律,所以让我们来找规律。

观察发现,奇数行和偶数行的白色格子总是错一个,这就给这道题加上了很强的奇偶特征。

class Solution {public:    bool squareIsWhite(string coordinates) {        if((coordinates[0]+coordinates[1]-"a"-"0")%2==0) return true;        return false;    }};

LCP 17. 速算机器人

题目链接

模拟

依据题意模拟

class Solution {public:    int calculate(string s) {        int x=1,y=0;        for(int i=0;i<s.size();i++)        {            if(s[i]=="A") x=2*x+y;            else y=2*y+x;        }        return x+y;    }};

2011. 执行操作后的变量值

题目链接

模拟

依据题意模拟

class Solution {public:    int finalValueAfterOperations(vector<string>& operations) {        int x=0;        for(auto t:operations){            if(t=="--X"||t=="X--") x--;            else x++;        }        return x;    }};

1876. 长度为三且各字符不同的子字符串

题目链接

枚举子串

把原串遍历一遍,切分除所有长度为三的子串,判断是否有重复元素。

class Solution {public:    int countGoodSubstrings(string s) {        if(s.size()<3) return 0;        int ans=0;        for(int i=0;i<s.size()-2;i++){            string t=s.substr(i,3);            if(t[0]!=t[1]&&t[1]!=t[2]&&t[0]!=t[2]) ans++;        }        return ans;    }};

520. 检测大写字母

题目链接

循环判断

第一个字母可以是大写或小写,所以我们先不对第一个字母进行判断。第二个字母到字符串末尾最后一个字母的大小写情况必须相同,所以我们用第二个字母的大小写情况来定义规则,后面依次和规则进行比较。还有一点,就是第一个字母小写后面的字母全是大写的情况也是不合法的,于是如果第一个字母是小写的我们的规则就需要改变一下,也就是说第一个字母小写后面的字母必须全是小写。

class Solution {public:    bool detectCapitalUse(string word) {        bool st=word[1]>="A"&&word[1]<="Z";        if(word[0]>="a"&&word[0]<="z") st=false;        for(int i=1;i<word.size();i++){            if(st!=(word[i]>="A"&&word[i]<="Z")) return false;        }        return true;    }};

709. 转换成小写字母

题目链接

循环判断

循环判断整个字符串,如果发现当前字符是大写的,就将其转为小写。
ASCLL值大小写字母差32,可以直接对字符进行加减法,实质是对ASCLL码做出的加减法

class Solution {public:    string toLowerCase(string s) {        for(int i=0;i<s.size();i++){            if(s[i]>="A"&&s[i]<="Z") s[i]+=32;        }        return s;    }};

1704. 判断字符串的两半是否相似

题目链接

循环判断

循环整个字符串,定义两个变量分别存两半的元音字母数

class Solution {public:    bool halvesAreAlike(string s) {        int ans1=0,ans2=0;        for(int i=0;i<s.size();i++){            if(i<s.size()/2){                if(s[i]=="a"||s[i]=="e"||s[i]=="o"||s[i]=="i"||s[i]=="u"||s[i]=="A"||s[i]=="O"||s[i]=="E"||s[i]=="I"||s[i]=="U") ans1++;            }            else{                if(s[i]=="a"||s[i]=="e"||s[i]=="o"||s[i]=="i"||s[i]=="u"||s[i]=="A"||s[i]=="O"||s[i]=="E"||s[i]=="I"||s[i]=="U") ans2++;            }        }        return ans1==ans2;    }};

1844. 将所有数字用字符替换

题目链接

循环判断

class Solution {public:    char shift(char c,int x)    {        return c+x;    }        string replaceDigits(string s) {        for(int i=1;i<s.size();i+=2)        {            s[i]=shift(s[i-1],s[i]-"0");        }        return s;    }};

1805. 字符串中不同整数的数目

题目链接

循环判断

循环整个字符串,找出其中是数字的片段,如果这个数字没见过,就加到集合里面去(加前注意去除前导0)并且给答案数加一

class Solution {public:    int numDifferentIntegers(string word) {        set<string>cnt;        int ans=0;        int res=0;        string ch;        for(int i=0;i<word.size();i++)        {            if(word[i]>="0"&&word[i]<="9")             {                ch+=word[i];            }            else             {                int t=0;                while(ch[t]=="0") t++;                if(ch.size()&&cnt.find(ch.substr(t))==cnt.end())                {                                        cnt.insert(ch.substr(t));                    ans++;                }                ch.clear();            }        }        if(ch.size())        {            int t=0;            while(ch[t]=="0") t++;            if(cnt.find(ch.substr(t))==cnt.end()) ans++;        }                return ans;    }};

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/123051.html

相关文章

  • Leetcode PHP题解--D3 709. To Lower Case

    摘要:题目链接题目分析这个题目要求返回所传字符串的全小写形式。思路按照语言的思路,遍历每个字符,判断是不是大写。是大写则转换成小写。具体转换方法是对这个大写字符减去再加。因此,我们用原生函数来实现。 709. To Lower Case 题目链接 709. To Lower Case 题目分析 这个题目要求返回所传字符串的全小写形式。 思路 按照C语言的思路,遍历每个字符,判断是不是大写。是...

    fredshare 评论0 收藏0
  • 提高GAN训练稳定性的9大tricks

    摘要:另外,在损失函数中加入感知正则化则在一定程度上可缓解该问题。替代损失函数修复缺陷的最流行的补丁是。的作者认为传统损失函数并不会使收集的数据分布接近于真实数据分布。原来损失函数中的对数损失并不影响生成数据与决策边界的距离。 尽管 GAN 领域的进步令人印象深刻,但其在应用过程中仍然存在一些困难。本文梳理了 GAN 在应用过程中存在的一些难题,并提出了的解决方法。使用 GAN 的缺陷众所周知,G...

    Xufc 评论0 收藏0
  • 思维导图整理大厂面试高频数组补充1: 最接近的三数之和 和 三数之和 的两个不同之处, 力扣16

    摘要:此专栏文章是对力扣上算法题目各种方法的总结和归纳整理出最重要的思路和知识重点并以思维导图形式呈现当然也会加上我对导图的详解目的是为了更方便快捷的记忆和回忆算法重点不用每次都重复看题解毕竟算法不是做了一遍就能完全记住的所 ...

    longmon 评论0 收藏0
  • Leetcode PHP题解--D81 520. Detect Capital

    摘要:题目链接题目分析给定一个单词,判断其使用大写的方式正确与否。用的结果和包含全大写或全小写的数组计算差集,结果为空集则说明为全大写或全小写。除了全大写和全小写的情况外,只能出现首字母大写,其余字母小写的情况。 D81 520. Detect Capital 题目链接 520. Detect Capital 题目分析 给定一个单词,判断其使用大写的方式正确与否。 思路 如果给定单词是全大写...

    weapon 评论0 收藏0
  • ❤️思维导图整理大厂面试高频数组19: 股票问题III的dp数组构建/初始化和空间优化难点, 力扣1

    此专栏文章是对力扣上算法题目各种方法的总结和归纳, 整理出最重要的思路和知识重点并以思维导图形式呈现, 当然也会加上我对导图的详解. 目的是为了更方便快捷的记忆和回忆算法重点(不用每次都重复看题解), 毕竟算法不是做了一遍就能完全记住的. 所以本文适合已经知道解题思路和方法, 想进一步加强理解和记忆的朋友, 并不适合第一次接触此题的朋友(可以根据题号先去力扣看看官方题解, 然后再看本文内容). 关...

    刘福 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<