小红书8-19软件开发笔试

《软件开发笔试汇总》https://blog.nowcoder.net/zhuanlan/0oDWVm

1、小红背单词

小红每天都要背单词,然后她会把每天记住了多少单词记录下来,并在小红书上打卡。当小红背单词时,如果她已经记住了i个单词,且背了一个没有记住的新单词i+1次,则她就会记住这个新单词。

例如,当她按顺序背[“you““thank”"thank”]时,她第一次背单词"you"时她就能记住“you”。而由于她已经记住了一个单词,所以需要背两次“thank"才能记住"thank”。现在你知道了小红背单词的顺序,请你求出小红今天记住了多少个单词。

输入描述:

第一行一个整数n(1<=n<=10000)。接下来n行,每行一个字符串,保证每个字符串长度不超过 10.

输出描述:

输出一个整数,表示她记住了多少个单词。

样例输入:

5 you thank queue queue thank

样例输出

2

#include <iostream>
#include <unordered_map>
#include <unordered_set>
#include <string>
#include <vector>

using namespace std;

int main() {
    int n;
    cin >> n;

    vector<string> s(n);
    for(int i = 0; i < n; i++) {
        cin >> s[i];
    }

    unordered_map<string, int> map;
    unordered_set<string> set;
    int ans = 0;

    for(int i = 0; i < n; i++) {
        if(set.find(s[i]) != set.end()) continue;

        map[s[i]] = map.find(s[i]) != map.end() ? map[s[i]] + 1 : 1;

        if(map[s[i]] > ans) {
            ans++;
            set.insert(s[i]);
        }
    }

    cout << ans << endl;

    return 0;
}

 

2、小红的回文串

小红有一个字符串,她可以进行以下操作:

-拆分。把’w'拆成2’v'’m’拆成 2'n’

-轴堆成。把’b’轴对称成’d’’p’轴对称成’q’,反之亦然。

-翻转。把’b’反转成’q’,把’d’翻转成’p’,把’n’翻转成’u’

经过若干次操作,小红想知

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏主要发布嵌入式软件开发相关岗位2023年(2024届)的笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、数据开发、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。

全部评论

相关推荐

10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务