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

计算某字符出现次数

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

本题主要考察字符串的操作。首先先把所有的字符转换成大写字符,便于比较。其次,使用双指针,一个指针指向字符串的开头,另一个指针指向字符串的最后一位,同时与字符c进行比较。移动双指针,直到遍历完全部的字符串为止。

#include <string>
using namespace std;

int HJ2(string s, char c) {
    // 先将小写转大写
    int n = s.size();
    for (int k = 0; k < n; k++) {
        if (s[k] >= 'a' && s[k] <= 'z') {
            s[k] = s[k] - 32;
        }
    }
    if (c >= 'a' && c <= 'z') c = c-32;
    
    int i = 0, j = n-1;
    int num = 0;
    
    while ( i < j) {
        if (s[i++] == c) num++;
        if (s[j--] == c) num++;
    }
    if (i == j) {
		if (s[i] == c) num++;
	}
    return num;
}


int main() {
    string s;
    getline(cin, s, '\n');
    char c;
    cin >> c;
    int ans = HJ2(s, c);
    cout << ans << endl;
    return 0;
}
全部评论

相关推荐

lingo12:1.最好加个业务项目,大部分面试官工作以后会更偏重业务 2.实习部分描述一般般,可能hr看到会觉得你产出不够不给你过简历 3.蓝桥杯这些大部分人都有的,不如不写,反而减分项。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务