2024面试算法题目(go)

文章目录

  • xiaomi

xiaomi

1 三数之和 (注意去重的边界条件,过几天再刷几次)
2 长度最小的子数组 (代码随想录题目,滑动窗口)
3 用链表实现栈

package mainimport ("errors""fmt"
)// Node 定义链表节点
type Node struct {data intnext *Node
}// Stack 定义栈结构
type Stack struct {top *Node
}// NewStack 创建一个新的空栈
func NewStack() *Stack {return &Stack{nil}
}// Push 将元素压入栈顶
func (s *Stack) Push(data int) {s.top = &Node{data, s.top}
}// Pop 移除并返回栈顶元素
func (s *Stack) Pop() (int, error) {if s.top == nil {return 0, errors.New("stack is empty")}data := s.top.datas.top = s.top.nextreturn data, nil
}// Traverse 遍历栈中的元素
func (s *Stack) Traverse() {for current := s.top; current != nil; current = current.next {fmt.Print(current.data, " ")}fmt.Println()
}func main() {stack := NewStack()// 推送元素stack.Push(1)stack.Push(2)stack.Push(3)// 遍历栈stack.Traverse() // 输出: 3 2 1// 弹出元素data, err := stack.Pop()if err == nil {fmt.Println("Pop:", data) // 输出: Pop: 3}// 再次遍历栈stack.Traverse() // 输出: 2 1
}

4 基础计算器

//标题
//10以内正整数的加乘括号运算的求解
//
//题目描述
//9+((8*2+3)+1)*2=
func opsSort(ops string) int {switch ops {case "*":return 2case "+":return 1default:return 0}
}func calc(nums []int, ops []string) (nums1 []int, ops1 []string) {right, left := nums[len(nums)-1], nums[len(nums)-2]nums = nums[:len(nums)-2]op := ops[len(ops)-1]ops = ops[:len(ops)-1]switch op {case "+":nums = append(nums, left+right)case "*":nums = append(nums, left*right)}return nums, ops
}func MathResult(raw string) int {paramStack, opsStack := make([]int, 0), make([]string, 0)for _, s := range raw {str := string(s)n, err := strconv.Atoi(str)if err == nil {paramStack = append(paramStack, n)} else {switch string(s) {case "(":opsStack = append(opsStack, str)case ")":for opsStack[len(opsStack)-1] != "(" {paramStack, opsStack = calc(paramStack, opsStack)}opsStack = opsStack[:len(opsStack)-1]case "+", "*":for len(opsStack) > 0 && opsSort(str) <= opsSort(opsStack[len(opsStack)-1]) {paramStack, opsStack = calc(paramStack, opsStack)}opsStack = append(opsStack, str)}}}for len(opsStack) > 0 {paramStack, opsStack = calc(paramStack, opsStack)}return paramStack[0]
}func main() {var a stringfmt.Scan(&a)// a := "8*2+3"// a := "9+((8*2+3)+1)*2"// a := "2*(3+4)"fmt.Println(MathResult(a))
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/12522.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mongodb备份还原指南

MongoDB 提供的命令行实用程序mongodump和mongorestore创建备份和恢复数据的过程。 一、数据备份 mongorestore和mongodump实用程序可处理BSON数据转储&#xff0c;对于创建小型部署的备份非常有用。要实现弹性且无中断的备份&#xff0c;请将文件系统快照或区块级磁盘快照与…

(delphi11最新学习资料) Object Pascal 学习笔记---第12章第1节 ( 类数据、Virtual类方法和隐藏的self参数)

12.1.1 类数据 ​ 类数据是所有类对象之间共享的数据&#xff0c;提供全局存储但具有类特定的访问权限&#xff08;包括访问限制&#xff09;。您如何声明类数据&#xff1f;只需在类中定义一个标记为“class var”的部分&#xff1a; type TMyData class private class …

串联所有单词的子串 ---- 滑动窗口

题目链接 题目: 分析: 我们上次做的题目, 是找到所有字符的异位词, 和这道题有些类似, 使用记录有效字符的个数找到子字符, 此题无非是把字符变成了字符串题目回顾 有一下几方面不同, 我们以示例1为例: 1. 哈希表 上次我们使用的是哈希数组, 因为数组的下标可以是字符, 现…

常类API(Math,System,Runtime)

1、Math 是帮助我们用于进行数学计算的工具类私有化构造方法&#xff0c;所有的方法都是静态的 方法名 说明public static int abs(int a) 获取参数绝对值 public static double ceil(int a)向上取整public static double floor(int a)向下取…

java项目之教学辅助平台(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的教学辅助平台。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 教学辅助平台的主要使用者分…

如何在 Ubuntu 12.10 上使用 Python 创建 Nagios 插件

介绍 Python 是一种在 Linux 上默认可用的流行命令处理器。 我们之前已经介绍过如何在 Ubuntu 12.10 x64 上安装 Nagios 监控服务器。 这一次&#xff0c;我们将扩展这个想法&#xff0c;使用 Python 创建 Nagios 插件。 这些插件将在客户 VPS 上运行&#xff0c;并通过 NR…

Java String转JSONObject时保持字段顺序不变

Java String转JSONObject时保持字段顺序不变 问题背景解决方案 问题背景 在业务接口开发过程中&#xff0c;有一个新增接口&#xff0c;需要支持批量新增数据&#xff0c;这时入参就需要用到 json 格式数据&#xff0c;且包含 list 集合&#xff0c;比如这样的数据格式&#x…

windows11 Django环境安装

相关文档 1、验证python和pip3环境 C:\Users\Administrator>python Python 3.12.3 (tags/v3.12.3:f6650f9, Apr 9 2024, 14:05:25) [MSC v.1938 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for…

基于yolov2深度学习网络的单人口罩佩戴检测和人脸定位算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022A 3.部分核心程序 ..............................................................I0 imresize…

QX----mini51单片机学习---(7)矩阵键盘

目录 1矩阵键盘的识别 2相关c语言 3实践编程 1矩阵键盘的识别 假设按列扫描按下S6P30&#xff1a;0P34&#xff1a;1然后高流向低&#xff0c;P34&#xff1a;0&#xff0c;刚开始是0xf0&#xff1a;1111 0000 后面是0xe0&#xff1a;1110 0000 &#xff0c;当是0xe0能确…

MySQL用SQL取三列中最大的数据值

1、有如下数据&#xff1a; ABC000097.0600330.72330.720069.650027.8827.85086.92086.92219.42219.4219.41 需要展示为如下形式&#xff1a; ABC结果列0000097.06097.060330.72330.72330.7200669.65009.6527.8827.85027.8886.92086.9286.92219.42219.4219.41219.42 解决办…

Spring Cloud系列—Spring Cloud Gateway服务网关的部署与使用指南

Gateway网关 文章目录 Gateway网关1. 网关基本简介1.1 什么是网关1.2 为什么需要网关&#xff1f; 2. 快速搭建gateway网关2.1 创建新模块2.2 引入依赖2.3 编写启动类2.4 配置路由规则2.5 测试 3. 路由过滤4. 过滤器4.1 简介4.2 网关过滤器4.2.2 种类 4.3 自定义过滤器4.3.1 自…

平衡三进制小数详解与进制转换

标准三进制是“逢三进一&#xff0c;退一还三”的机制&#xff0c;平衡三进制与之类似&#xff0c;但就是偏移了一下变得对称了&#xff0c;平衡三进制与标准三进制可以相互转换&#xff0c;但这样显得有点多余了&#xff0c;所以这里只讲平衡三进制与十进制的转换。 数字系统的…

Flutter 中的 ActionChip 小部件:全面指南

Flutter 中的 ActionChip 小部件&#xff1a;全面指南 在Flutter的Material组件库中&#xff0c;ActionChip是一种用于呈现一组相关操作的组件。它通常用于较少的、需要用户立即进行的操作&#xff0c;如过滤、排序或删除。ActionChip在视觉上与ChoiceChip相似&#xff0c;但使…

MyBatis的核心配置文件---configuration.xml

在MyBatis中&#xff0c;configuration.xml 是MyBatis的核心配置文件&#xff0c;它包含了MyBatis的全局配置信息&#xff0c;如数据源配置、事务管理器配置、别名配置、映射文件配置等。尽管在Spring Boot项目中&#xff0c;MyBatis的配置可以大部分通过属性配置在application…

数据结构与算法-排序算法3-插入排序

目录 1.插入排序&#xff1a; 1.介绍&#xff1a; 2.动态图解 3.举例 4.小结插入排序规则 5.插入排序代码 6.运行时间 代码&#xff1a; 运行结果&#xff1a; 1.插入排序&#xff1a; 1.介绍&#xff1a; 数组中n个元素&#xff0c;把这n个待排序元素看成一个有序序…

Oracle JDK 与 OpenJDK:如何选择及其区别

引言 在选择 Java 开发工具包 (JDK) 时&#xff0c;很多开发者可能会困惑于 Oracle JDK 和 OpenJDK 之间的差异。本文将详细分析这两者的区别&#xff0c;帮助大家做出更明智的选择。 背景 2006 年&#xff0c;SUN 公司宣布 Java 开源&#xff0c;推出了 OpenJDK。2009 年&a…

(Java面试题——基础版)JVM、JRE和JDK的关系

JVM Java Virtual Machine是Java虚拟机 &#xff0c;Java程序需要运行在虚拟机上 &#xff0c;不同的平台有自己的虚拟机 &#xff0c;因此Java语言可以 实现跨平台。JVM 负责将 Java 字节码&#xff08;即编译后的 .class 文件&#xff09;翻译成特定平台上的机器码&#xff0…

直播预告-如何快乐学习亚马逊云科技AWS,玩游戏备考亚马逊云科技云从业者认证?

一边玩一边学习亚马逊云科技云技能&#xff0c;这么好的事尊的假的&#xff1f;本周六&#xff08;5约11日&#xff09;晚20点&#xff0c;亚马逊云科技UG云端夜话Night Talk活动精彩回归&#xff5e; 本次亚马逊云科技UG云端夜话直播是什么&#xff1f; 小李哥这次将在多平台…

分析 vs2019 cpp20 规范的 STL 库模板 function ,源码注释并探讨几个问题

&#xff08;1 探讨一&#xff09;第一个尝试弄清的问题是父类模板与子类模板的模板参数的对应关系&#xff0c;如下图&#xff1a; 我们要弄清的问题是创建 function 对象时&#xff0c;传递的模板参数 _Fty , 传递到其父类 _Func_class 中时 &#xff0c;父类的模板参数 _Ret…