主要观点总结
本文介绍了三个不同题目的解法,包括算式求解、找出升序数组中和为给定值的两个数字以及根据字符串中的时间信息排序并输出。
关键观点总结
关键观点1: 题目一:算式求解
本题属于经典的中缀表达式计算类栈题,维护preSign变量来表示上一个数字是加法还是减法。可以直接调用eval() API进行求解,也可以根据等于号"="对字符串进行切割,将切割后的各个字串传入eval()得到各个子串的计算结构,再做求和。
关键观点2: 题目二:找出升序数组中和为给定值的两个数字
本题和LeetCode167. 两数之和 II - 输入有序数组基本完全一致,属于贪心类的相向双指针题目。注意输出格式的要求,若结果异常或未找到,后两个数字返回均为0。
关键观点3: 题目三:根据字符串中的时间信息排序并输出
本题是模拟排序题,需要遍历每一个子串中长度为19的切片查看是否为时间戳,再根据题意进行模拟排序。去重可以使用哈希集合操作。
文章预览
来自公众号: 吴师兄学算法 今天更新的是荣耀 2023/09/05 秋招算法面试题。 题目一:算式求解 题目描述 要开发一款教育类App,帮助幼儿在识数阶段做一百以内自然数[0.99]的加减法。 屏幕上会显示 "1" "2" "3" "4" "5" "6" "7" "8" "9" "0" "+" "-" "=" 这些按钮,用户在按了若工按钮之后,如果按了 "=" ,则会把按 "=" 之前的字符串作为一个算式,计算结果。 中间结果或最后结果可以为负数。 输入描述 输入为一个字符串,形如 "23+86-6+37+24-8-13" 。 输入字符串中保证: 1.不会包含除 "1" "2" "3" "4" "5" "6" "7" "8" "9" "0" "+" "-" "=" 之外的字符 2.长度不为 0 3.不以 "+" 或 "-" 开始,不以 "+" 或 "-" 结束 4.不会出现连续两个或两个以上 "+" 5.不会出现连续两个或两个以上 "-" 6. "+" "-" 不会相邻 7.操作数为范围为 [0,99] 8.一定包含运算符 ( "+" 或 "-" ) 输出描述 算式结果,一个整数。 示例 输
………………………………