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类是符合要求的,如果是小写的看后面是否全是小写,如果是就符合题意。(可以定一个计数器,在首字母是大写时,往后数大写字母个数,如果是总长度减一或零返回真,否则返回假;如果首字母是小写,如果从第二个数,后面的小写字母数是等于长度减一返回真,否则返回假)