华为软件开发编程题统计数字(80%)+字符替换(未知通过率)

1、统计数字,只有80%,感觉代码还可以,借助哈希,无需用到set,vector等容器

#include<iostream>
#include<string>
using namespace std;
int main()
{
    int record[10] = { 0 };
    string s;
    while (getline(cin, s)) {
        for (unsigned int i = 0; i<s.size(); i++) {
            record[s[i] - 48]++;
        }
        int lastone = 9;
        while (record[lastone--] == 0);
        lastone++;
        for (int i = 0; i<lastone; i++) {
            if (record[i] != 0) {
                cout << i << " ";
                cout << record[i] << " ";
            }
        }
        cout << lastone << " " << record[lastone] << endl;
    }
}

2、字符替换。交卷了才写好,没考虑大小写不敏感。

#include<string>
#include<iostream>
#include<vector>
using namespace std;
void replace(string &s, char torep, char rep,const vector<int> &vec,int index )
{
    if (index == vec.size() )
              cout << s<<",";
    else {
        replace(s, torep, rep, vec, index+1);
        s[vec[index]] = rep;
        replace(s, torep, rep, vec, index + 1);
        s[vec[index]] = torep;
    }
}
int main()
{
    string s;
    char torep,rep;
    cin >> s >> torep >> rep;
    vector<int> vec;
    for (int i = 0; i < s.size(); i++) {
        if (s[i] == torep)
            vec.push_back(i);
    }
    replace(s, torep, rep,vec,vec[0]);
}
全部评论

相关推荐

10-09 17:17
已编辑
门头沟学院 Java
活泼的代码渣渣在泡池...:同学你好,我也是学院本,后天要面这个亚信科技,是实习,请问问题都啥样呀,我项目就做了网上的,这是第一次面试
投递多益网络等公司10个岗位
点赞 评论 收藏
分享
10-15 20:01
已编辑
上海大学 Java
钉钉什么垃圾公司,约面鸽人
光年在眼前:不是坏事,感觉钉钉挺逆天的,二面结束还给我留作业,让我使用钉钉和看最新的发布会,然后说感受,我是应该不会去,三面直接拒绝不面了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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