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

计算某字符出现次数

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;
}

全部评论

相关推荐

09-22 09:42
门头沟学院 Java
牛客37185681...:马德,我感觉这是我面过最恶心的公司,一面是两个女hr,说什么实习前几个月属于试用期,试用期过了才能转成正式实习生,我***笑了,问待遇就是不说,问能不能接受全栈,沙币公司
如果可以选,你最想去哪家...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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