2019-04-08

2019-04-08  本文已影响0人  张炜斌

2019.04.08

class Solution
{
public:
    bool detectCapitalUse(string word)
    {
        char p[100];
        for (int i = 0; i < word.length() + 1; i++)
        {
            p[i] = word[i];
        }
        if (p[0] >= 'A'&&p[0] <= 'Z')
        {
            int count = 0;
            for (int i = 1; i < strlen(p); i++)
            {
                if (p[i] >= 'A'&&p[i] <= 'Z')
                    count++;
            }
            if (count == strlen(p)-1 || count == 0)
                return true;
            else
                return false;
        }
        if(p[0]>='a'&&p[0]<='z')
        {
            int count=0;
            for(int i=1;i<strlen(p);i++)
            {
                if(p[i]>='a'&&p[i]<='z')
                    count++;
            }
            if(count==strlen(p)-1)
                return true;
            return false;
        }
        else
            return false;
    }
};

题解分析:
(1)本题是需要检查string类中的元素是否符合题目中的三点要求
(2)涉及的新知识点,可以调用string类的函数库比如返回string类元素的下标,以及string类元素的长度
(3)解决问题的思路:按照题意的要求,首先分首字母是否为大写,如果是大写从第二个开始数如果后面的全是大写或全是小写,那么这一个string类是符合要求的,如果是小写的看后面是否全是小写,如果是就符合题意。(可以定一个计数器,在首字母是大写时,往后数大写字母个数,如果是总长度减一或零返回真,否则返回假;如果首字母是小写,如果从第二个数,后面的小写字母数是等于长度减一返回真,否则返回假)

上一篇下一篇

猜你喜欢

热点阅读