2019年秋招猿辅导笔试编程题解析字符串
猿辅导笔试
编程题的解析字符串
5
A11B
(AA)2A
((A2B)2)2G
(YUANFUDAO)2JIAYOU
A2BC4D2
输入如上,按照规则解析字符串
研究了下用栈写出来了,其实不难,加上笔试时间,和复杂的边界条件,程序就很难跑的完全通。
如果有好的递归写法,欢迎分享下
public class Main {public static void main(String[] args) {decodeString("A11B");decodeString("(AA)2A");decodeString("((A2B)2)2G");decodeString("(YUANFUDAO)2JIAYOU");decodeString("A2BC4D2");}public static String decodeString(String s) {Stack<String> stack = new Stack();for (int i = 0; i < s.length(); i++) {if (s.charAt(i) == ')') {String str = "";while (!stack.peek().equals("(")) {str = stack.pop() + str;}stack.pop();String num = "";int w = 0;while (s.charAt(i + 1) >= '0' && s.charAt(i + 1) <= '9') {w++;num = s.charAt(i + 1) + num;i++;}i = i - w + 1;int repeat = Integer.parseInt(num);String ret = "";for (int j = 0; j < repeat; j++) {ret = ret + str;}stack.push(ret);} else if (i + 1 > s.length() - 1 || s.charAt(i + 1) < '0' || s.charAt(i + 1) > '9') {String str = "";stack.push(s.charAt(i) + str);} else {int index = i;String num = "";while ((i + 1) <= s.length() - 1 && s.charAt(i + 1) >= '0' && s.charAt(i + 1) <= '9') {num = s.charAt(i + 1) + num;i++;}int nums = Integer.parseInt(num);String ret = "";for (int k = 0; k < nums; k++) {ret = s.charAt(index) + ret;}stack.push(ret);if (i + 1 >= s.length()) {break;}}}String result = "";while (!stack.isEmpty()) {result = stack.pop() + result;}System.out.println(result);return result;}
}
输出如下
AAAAAAAAAAAB
AAAAA
AABAABAABAABG
YUANFUDAOYUANFUDAOJIAYOU
AABCCCCDD
2019年秋招猿辅导笔试编程题解析字符串相关推荐
- 2020秋招——XX校招笔试编程题:回文串
回文串判断&打印给定字符串中的所有回文串 笔试时是纸质的,记错了indexOf()函数和charAt()函数,重大失误emmm,这样逻辑虽然都对了还是要gg,ww,反省中... 回文串:aba ...
- 科大讯飞2019秋招研究算法笔试编程题
第一题 样例输入 2 5 60 59 20 30 90 100 5 60 59 20 10 10 100 样例输出 1 2 Hint 对于第一组数据,将59改成60即可 AC代码: def minst ...
- 网易雷火2020秋招平台开发笔试-编程题
题一 题目描述 AABB盒(Axis-Aligned Bounding Box)是描述3D世界包围盒的一个长方体,他的每一边都平行于一个坐标平面,中心点,长.宽.高可以彼此不同,如下图所示: 现在给定 ...
- 2018年贝壳网校招(秋招)算法笔试编程题
1.题目描述: 给定一个长度为N的序列A1到AN,求所有区间[L,R](1≤L≤R≤N)的极差之和,其中区间[L,R]的极差定义为AL到AR中的最大值与最小值之差. 思路:暴力求解,通过率36% 代码 ...
- 字节跳动2019春招第二次笔试编程题
字节跳动2019春招第二次笔试编程题 1.变身程序员 题目描述 输入描述 输出描述 示例 示例1 示例2 示例3 分析 参考代码 2.特征提取 题目描述 输入描述 输出描述 示例 示例1 备注 分析 ...
- 华为秋招机试三道编程题(2021-09-01)
通知:华为.阿里最新的秋招笔试编程题题目.思路以及参考代码已经全部整理好放在微信公众号[TechGuide]了,私信公众号回复[华为]或者[阿里]即可获得最实时.最详细的笔试题解啦! 通知:华为.阿里 ...
- 猿辅导9-12编程题3道
第一题: 模拟题,给你一个数组,每次把前N/2部分和后N-N/2部分交叉合并,求合并M次后的结果 . #include<iostream> using namespace std;int ...
- 2019美团机器学习/数据挖掘算法实习生笔试 编程题修改矩阵
主要用于交流思考 1.修改矩阵 时间限制:C/C++语言 1000MS:其他语言 3000MS 内存限制:C/C++语言 65536KB:其他语言 589824KB题目描述: 我们称一个矩阵为黑白矩阵 ...
- 2021秋招拼多多笔试算法题
1.现有一个n*m的矩阵,矩阵中每个格子都有且只有一种颜色.矩阵中共有k种颜色,每个颜色通过特定数字C(i,j)表示.设初始位置位于(1,1),每次可以向右(x+1,y)者向下(x,y+1)移动一个单 ...
最新文章
- Netweaver工作进程的内存限制 VS CloudFoundry应用的内存限制
- Linux系统进程管理
- 系统重装 如何转换GPT的磁盘格式为MBR或者反过来
- 在CNN上增加一层CAM告诉你CNN到底关注什么
- flutter 页面加载动画_Flutter撸一个加载动画
- 王者荣耀最难选择题2选1,刺痛cos虞姬,还是北极星露脸?我选一
- win8 -telnet安装
- ASP.NET Core2读写InfluxDB时序数据库
- 第三十八期:用Git帮助写作者更好地完成工作
- 此处不允许使用分组函数_Excel中使用Vlookup函数实现数据分组
- libreoffice转换文件为pdf文件乱码问题解决办法
- 华为Fusioncompute 安装windows虚拟机tools安装失败和硬盘不识别问题解决
- 蚂蚁课堂视频笔记思维导图-3期 三、性能优化专题
- 计算机培训通知,关于开展上海师范大学2018年计算机办公自动化免费培训的通知...
- Java——哈希值是什么?
- python使用pytesseract识别图片中的文字
- linux sox用法 播放,SoX——linux终端播放音频文件
- 【网易微专业】算法原理与实践 2
- 在计算机上知道手机密码,不知道密码查手机通话记录:傻瓜式教程
- python程序员面试宝典:12个Python程序员面试必备问题与答案
热门文章
- Android系统启动流程 -- bootloader、linux kernel、android
- FPGA程序如何模块化设计?
- auc 和loss_为什么是AUC值而不是GSEA来挑选转录因子呢
- 热烈祝贺湖南人爱科技有限公司创始人:熊泽波荣获“2019大国优秀创新企业奖”
- xstart连接linux桌面使用的端口,用xstart远程连接linux图形用户界面
- 2021年顶级编程语言名单出炉,SQL位居榜首,Java、Python紧随其后
- ffmpeg配置问题:Couldn‘t find ffmpeg or avconv - defaulting to ffmpeg, but may not work
- Sakurairo主题的美化篇,底部美化
- 数据挖掘的十八般武艺,咳咳,十八个重要算法
- c语言软件清屏代码,求用switch语句写的代码,要清屏,要满足图、、,谢谢,C语言...