题解 | #计算某字符出现次数#

计算某字符出现次数

http://www.nowcoder.com/practice/a35ce98431874e3a820dbe4b2d0508b1

考虑大小写,因此边界条件有target为大写,target为小写,target非字母三种状态,judge做一个简单讨论用0,1,2返回对应的情况编号
target为大写,data[i]和data[i]-32均可
target为小写,data[i]和data[i]+32均可
target不为字母,则仅有data[i]匹配时可

#include<iostream>
#include<string>
using namespace std;

//判断字符类型
//大写返回1,小写返回2,否则返回0
int judge(char a)
{
    if(a>='A'&&a<='Z')
    {
        return 1;
    }
    else if(a>='a'&&a<='z')
    {
        return 2;
    }
    return 0;
}
int main(){
    string data;
    int counter,flag,len;
    char target;
    getline(cin,data);
    
        counter=0;
        len=data.size();
        cin>>target;
        flag=judge(target);
        switch (flag)
        {
            case 0:
                {
                    for(int i=0;i<len;i++)
                    {
                        if(data[i] == target)
                        {
                            counter++;
                        }
                    }
                    break;
                }
            case 1:
                {
                    for(int i=0;i<len;i++)
                    {
                        if(data[i]==target || data[i]==target+32)
                        {
                            counter++;
                        }
                    }
                    break;
                }
            case 2:
                {
                    for(int i=0;i<len;i++)
                    {
                        if(data[i]==target || data[i]==target-32)
                        {
                            counter++;
                        }
                    }
                    break;
                }
        }
        cout<<counter<<endl;
    
    return 0;
}

全部评论

相关推荐

Sigma429:极兔啊,薪资开的巨低,还在上海,索性不做笔试了
点赞 评论 收藏
分享
未知的命运:大佬这都找不到我还找啥啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务