字节跳动笔试题之字符串展开
小赵和小钱在练字,小钱对小赵说:你知道吗,我练习的字是有蕴含的。
小赵不服气了,凭什么你的就有蕴含呢?
小钱说,你所看到的并不是我真正练习的字,你需要将我现在写下的字符串里面“%”和“#”之间的字重复符号前的那么多倍,才能看到我真正写的是什么。
你能帮帮小赵吗?
说明:可能存在嵌套的情况,如“3%g2%n##”,返回“gnngnngnn”,输入输出的字符串长度都不超过10000。输入字符串保证合法,且输出的字符串中只包含大小写英文字母。输入格式
一行带数字和嵌套括号的字符串。输出格式
展开的字符串。输入样例:
3%acm#2%acm#
输出样例:
acmacmacmacmacm
思路:
存在嵌套的模式,需要考虑一下递归了,我们人脑做这道题是从里到外,先把最里层的模式串解决,再跳到外面一层,一层一层出去,最终是正确结果。
然而,使用代码的话,只能是从头到尾遍历字符串,如果遇到数字就说明接下来可能是进入模式串,然后一层一层进入到最里层的模式串,解决最里层,然后一层一层返回结果
有些边界值需要注意
我们举例说明一下,
eg: input aaa11%x3%y#zz#
i 从 0 开始,遇到的是字母,则直接添加至 res 中,
直到 s[i] 是数字,则接下来有两种情况:1. s[i+1] 还是数字, 我们需要记录需要重复的次数 times,转至 情况22. s[i+1] 是 %,那么接下来有a. % 后面是字母b. % 后面是数字,进入下一个模式串中...当遇到第一个 # ,我们找到了最里层的结尾标志,将需要重复的字符串返回,并进行重复操作然后就是一层层返回值最终得到答案
def dfs():res = ''global iwhile i < len(s):cur = s[i]if cur == '#': return resif '0' <= cur <= '9':times = ''while s[i] != '%':times += s[i]i += 1i += 1tmp = dfs()res += int(times) * tmpelse:res += curi += 1return res
if __name__ == '__main__':s = input()i = 0print(dfs())
aaa11%x3%y#zz#
aaaxyyyzzxyyyzzxyyyzzxyyyzzxyyyzzxyyyzzxyyyzzxyyyzzxyyyzzxyyyzzxyyyzz
字节跳动笔试题之字符串展开相关推荐
- 2018 java 字节跳动笔试题
想进字节跳动同学注意了,这里是修真院面试笔记整理,那么这里就给大家分享一下 [2018 java 字节跳动笔试题] 一面 实现算法:求全排列. 输入:一个整数n 输出:从1至n所有数字组成的全排列 简 ...
- 2021大厂字节跳动笔试题(含答案)
2021字节跳动web工程师笔试题 第一题 [ {num: 12, city: 'beijing'}, {num: 56, city: 'shanghai'}, {num: 167, city: 'g ...
- 最新版大厂字节跳动笔试题(含答案)
字节跳动测试工程师笔试题 1.阶段评审与同行评审的区别? 参考答案: 同行评审目的:发现小规模工作产品的错误,只要是找错误: 阶段评审目的:评审模块 阶段作品的正确性 可行性 及完整性 同行评审人数: ...
- 字节跳动笔试题(一)——18岁生日问题
前言 之前于6月30日,在下参加了字节跳动游戏研发岗的笔试. 做的一般般,很多题目也都忘了,不过好在对四道编程题还记得比较清楚,这里做一个简单的记录. 18岁生日问题 这道题的大意是给定一个人的出生日 ...
- 字节跳动笔试题02万万没想到之抓捕孔连顺
我叫王大锤,是一名特工.我刚刚接到任务:在字节跳动大街进行埋伏,抓捕恐怖分子孔连顺.和我一起行动的还有另外两名特工,我提议 我们在字节跳动大街的N个建筑中选定3个埋伏地点. 为了相互照应,我们决定相距 ...
- 2020字节跳动笔试题
第一题 小明总是睡过头,所以他定了很多闹钟,只有在闹钟响的时候他才会醒过来并且决定起不起床,从他起来算起他需要X分钟到达教室,上课时间为当天的A时B分,请问他最晚可以什么时候起床. 输入描述:第一行为 ...
- 【字节跳动笔试题】万万没想到之聪明的编辑
我叫王大锤,是一家出版社的编辑.我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误.但是,优秀的人总能在平凡的工作中发现真理.我发现一个发现拼写错误的捷径: 1. 三个同样 ...
- 2019字节跳动笔试题
第三题: 有n个人参加编程比赛,比赛结束后每个人都得到一个分数,现在所有人排成一圈(第一个和第n个相邻)领取奖品,要求: 1.现在某个人的分数比左右的人告,那么奖品数量也比左右的人多: 2.每个人至少 ...
- 字节跳动笔试题:1. 小于N的质数数量;2. 逆时针二维数组;3. 判断a+bc
1. 小于N的质数数量 import java.util.Scanner;/*** 计算小于N的质数数量* @author Turing**/ public class Main4 {public s ...
最新文章
- Python--day41--事件和信号量之模拟连接数据库并在连接三次后抛出连接超时异常...
- 封装CopyFileEx函数,实现文件复制中的暂停,控速,获取进度。
- java高分面试指南:redis怎么保证高可用
- 1017 A除以B (20分)
- ORA-01858: 在要求输入数字处找到非数字字符 13行
- C++ 判断类是否有某变量
- [有限元]利用虚位移和虚力的定义、对称性推导弹性力学公式
- mkhd中的matrix
- 混合使用UITabBarController和UINavigationController
- 解决安装vc2005运行库时提示Command line option syntax error.Type Command/?for Help
- 程序人生|从网瘾少年到微软、BAT、字节offer收割机逆袭之路
- 201903-1小中大
- win10计算机文件夹隐藏,Win10此电脑6个文件夹隐藏方法
- 【论文翻译】SETR:Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformer
- Binary_Search(二叉树搜索---------二分)
- 网易楚留香获取服务器信息,楚留香手游生活采集物有哪些 获取攻略
- ORA-00054 资源正忙
- Lsky Pro+云服务器搭建私人图床
- 导盲机器人 英语作文_雷军这回OK了!小米或将推出会说英文的 AI 自平衡车
- RDKit | 基于RDKit进行构象搜索:构型异构体生成和MMFF聚类