小红书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%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式软件笔试-24届真题汇总 文章被收录于专栏
本专栏主要发布嵌入式软件开发相关岗位2023年(2024届)的笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、数据开发、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。