首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
徐杨罡
清华大学 计算机类
发布于四川
关注
已关注
取消关注
@林小白zii:
虾皮笔试 虾皮笔试题 0320
笔试时间:2024年03月20日 历史笔试传送门:2023秋招笔试合集 第一题 题目:有效的重复字符 给定一个经过编码的字符串,按照特定规则返回它解码后的字符串。编码规则为: k{string},表示大括号内部的 string 经过解码后重复 k 次,k 保证为正整数, string经过解码后为由a-z之间的字符组成的字符串,即大括号可能会有嵌套的情况。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的括号总是符合格式要求的。原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2{4}的输入,但是会出现像2{a3{b4{c}d}e}的情况。 样例输入一 "2{ac}" 样例输出一 "acac" 样例输入二 "2{ab3{ac}}" 样例输出二 "abacacacabacacac" 参考题解 简单的栈模拟。遇到数字则不断累加,遇到左括号则入栈,则清空之前积累的数字以及之前记录的字符串,遇到右括号则出栈,复制相应数量的字符串,遇到字符则添加至当前的字符串中。 C++:[此代码未进行大量数据的测试,仅供参考] #include <iostream>#include <stack>#include <string>class Solution {public: std::string decodeString(const std::string& s) { std::stack<std::pair<std::string, int>> sk; int num = 0; std::string curString = ""; for (char c : s) { if (isdigit(c)) { num = num * 10 + (c - '0'); } else if (c == '{') { sk.push({curString, num}); curString = ""; num = 0; } else if (c == '}') { auto [lastString, cnt] = sk.top(); sk.pop(); std::string repeatedString; for (int i = 0; i < cnt; i++) { repeatedString += curString; } curString = lastString + repeatedString; } else { curString += c; } } return curString; }}; Java:[此代码未进行大量数据的测试,仅供参考] import java.util.Stack;public class Solution { public String decodeString(String s) { Stack<String> strStack = new Stack<>(); Stack<Integer> numStack = new Stack<>(); int num = 0; StringBuilder curString = new StringBuilder(); for (char c : s.toCharArray()) { if (Character.isDigit(c)) { num = num * 10 + Character.getNumericValue(c); } else if (c == '{') { strStack.push(curString.toString()); numStack.push(num); curString = new StringBuilder(); num = 0; } else if (c == '}') { String lastString = strStack.pop(); int cnt = numStack.pop(); StringBuilder repeatedString = new StringBuilder(); for (int i = 0; i < cnt; i++) { repeatedString.append(curString.toString()); } curString = new StringBuilder(lastString).append(repeatedString); } else { curString.append(c); } } return curString.toString(); }} Python:[此代码未进行大量数据的测试,仅供参考] class Solution: def decodeString(self, s) : # write code here sk = [] num = 0 cur_string = "" for c in s: if c.isdigit(): num = num*10 + int(c) elif c == "{": sk.append((cur_string, num)) cur_string = "" num = 0 elif c == "}": ls_string, cnt = sk.pop() cur_string = ls_string + cur_string*cnt else: cur_string += c return cur_string 第二题 题目:字符/数字卡片拼电话号码 幼儿园老师与小朋友做游戏,老师准备一个电话号码,幼儿从一叠识字卡片(每张卡片上有0~9,A~Z,a~z中的一个字母)中抽出任意(大于零)张卡片,顺序展示,然后进行如下操作:选择任意连续的若干张卡片,并将这些卡片按从小到大顺序排列。任意多次操作后,若所有卡片组成的字符串与老师展示的电话号码完全相同,则该幼儿游戏成功,输出1,否则失败,输出0,若有字母,返回-1,给出电话号码,及N个幼儿选择的卡片序列,预测此轮游戏的结果。 提示: 1、卡片总数足够多,且每个字母的卡片数足够多; 2、电话号码只包含数字,长度最少为3,最大为11; 样例输入 "119",["191","911","19","129","1A9"] 样例输出 [1,1,0,0,-1] 说明 191,选取第二、第三个字符91进行排序,得到19,整个字符串变为119,返回1 911,选取第一、第二个字符91排序,得到19,字符串变为191,继续选取第二、第三个字符91排序,得到19,整个字符串变成119,返回1 19,长度不匹配,不能匹配成功,返回0 129,包含字符2,不能匹配成功,返回0 1A9,包含字母,返回-1。 参考题解 核心思路是 检查字符串的相对位置。例如 "54213" 能否转换成 "13254" ,我们可以从最高位开始往前考虑,最后一位是4,那么我们如何将 54213得到呢?由于 5[4213]中,4往后的所有数字均小于4,所以可以不改变相对位置的前提下直接将4换到最后,于是可以得到"52134",如此我们继续考虑 "5213"能否转换成"1325"即可。 C++:[此代码未进行大量数据的测试,仅供参考] #include <iostream>#include <vector>#include <string>#include <unordered_map>#include <algorithm>class Solution {public: std::vector<int> sortSubStringToBuildPhoneNum(const std::string& phoneNum, const std::vector<std::string>& cardListArray) { int n = cardListArray.size(); std::vector<int> res(n, 0); for (int i = 0; i < n; ++i) { std::string card = cardListArray[i]; std::unordered_map<char, int> phoneCount, cardCount; for (char c : phoneNum) { phoneCount[c]++; } for (char c : card) {
点赞 0
评论 1
全部评论
推荐
最新
楼层
秋招专场
校招火热招聘中
官网直投
相关推荐
一定可以找到实习的瓜友
今天 10:14
西北工业大学 计算机类
字节跳动国际电商二面(未通过)
1.每隔K个数反转链表(写了,有点小bug)2.实现一个LRU(加入一个时间),随机删除(写了一半,被面试官叫停,后面只讲了思路)3.Mysql索引,索引是Innodb,3.1id(int)这一列为索引,select * from xx where id = '1',问索引是否会失效?3.2id(string)这一列为索引,select * from xx where id = 1,问索引是否会失效?4.缓存击穿和缓存淘汰
字节跳动二面108人在聊
查看3道真题和解析
点赞
评论
收藏
转发
友好的菠萝蜜练习时长两年半
05-30 18:54
软件测试
被比肩同花顺的公司当KPI
面试实施岗位他问你家是哪的,父母干啥的,独生子女,一点技术不问,一堆人跟流水席一样来面试,还给张题让你排序薪资或者工作前景重要,还是公司文化重要。还给我说他们公司的股票分析产品业内第一,我说我知道同花顺也是搞这个,他说他家的比同花顺还吊,给我吹了半天,问他产品咋销售的,结果是网上带货销售,纯纯被当KPI而且这公司所在楼就两层,一层是药店和火锅店,一层像网吧一样立个牌子在那也是逆天
工作丧失热情的瞬间
点赞
评论
收藏
转发
菜鸟成长历程
04-09 11:20
哈尔滨工程大学 能源动力类
嵌入式,25届,听劝
1.想问问大家这个简历怎么改去找暑期实习,大家都说简历最好一页,但是这个好难缩成一页呀。2.大家能提提建议简历怎么修改嘛,拜托了。3.还有能源动力这个专业愁死我了,本科是自动化,调剂来的能源动力,一直害怕找嵌入式工作因为能源动力卡我4.想冲暑期实习的大厂,就是找暑假的日常实习不是暑期实习,但是感觉就能源动力这都能把我卡死5.其实我是想找偏linux驱动的岗位,但是我这个学历和专业......#嵌入式##实习##听劝,这个简历怎么改#
听劝,这个简历怎么改
点赞
评论
收藏
转发
最喜欢夏天的花生米很想去夏威夷
05-20 17:53
山东建筑大学 计算机类
第一次找实习,问这么细吗😂
点赞
评论
收藏
转发
点赞
收藏
评论
分享
回复帖子
提到的真题
返回内容
全站热榜
1
...
给你们预测一下今年的秋招!
3069
2
...
深圳蟑螂真的很可怕吗
2773
3
...
【🎁】25届硬件牛牛互助计划(1期)
2624
4
...
阿里体检完还没发正式offer
2476
5
...
二本开发转测试,面试成功
2273
6
...
5.31拼多多服务端开发实习生一面(75min)
2138
7
...
海康暑期实习
2089
8
...
毕业了!
2070
9
...
拿了蓝桥杯c++b组国二,水平怎么样,找后端开发工作有多大优势?
1885
10
...
985研0退学工作吗?
1634
正在热议
#
和牛牛一起刷题打卡
#
14218次浏览
1305人参与
#
通信硬件薪资爆料
#
256806次浏览
2413人参与
#
不去互联网可以去金融科技
#
5113次浏览
67人参与
#
牛客帮帮团来啦!有问必答
#
1095897次浏览
16345人参与
#
面试被问第一学历差时该怎么回答
#
18420次浏览
202人参与
#
简历中的项目经历要怎么写?
#
14406次浏览
193人参与
#
工作两年想退休了
#
19430次浏览
243人参与
#
简历中的项目经历要怎么写
#
482874次浏览
8798人参与
#
实习生应该准时下班吗
#
93581次浏览
707人参与
#
简历无回复,你会继续海投还是优化再投?
#
23552次浏览
329人参与
#
你收到了团子的OC了吗
#
531245次浏览
6304人参与
#
参加过提前批的机械人,你们还参加秋招么
#
14115次浏览
343人参与
#
你的秋招进行到哪一步了
#
397173次浏览
6687人参与
#
你已经投递多少份简历了
#
338970次浏览
4907人参与
#
提前批和秋招有什么区别
#
29386次浏览
706人参与
#
晒一晒我的offer
#
3774693次浏览
58108人参与
#
实习与准备秋招该如何平衡
#
197728次浏览
3499人参与
#
你怎么评价今年的春招?
#
12565次浏览
194人参与
#
你的秋招进展怎么样了
#
558339次浏览
13949人参与
#
我的上岸简历长这样
#
203152次浏览
4127人参与
#
本周投递记录
#
221294次浏览
5386人参与
牛客网
牛客企业服务