- 【Golang】 Golang 的 GORM 库中的 Rows 函数
不爱洗脚的小滕
golang开发语言后端
文章目录前言一、Rows函数解释二、代码实现三、总结前言在使用Go语言进行数据库操作时,GORM(GoObject-RelationalMapping)库是一个常用的工具。它提供了一种简洁和强大的方式来处理数据库操作。本文将介绍GORM库中的Rows函数,这是一个用于执行原生SQL查询并返回结果的函数。一、Rows函数解释在GORM库中,Rows函数用于执行原生SQL查询并返回*sql.Rows结
- gorm RecordNotFound
darcyaf
gorm中,RecordNotFound()方法只能在结构体中使用,如果是slice类型,则不会报ErrRecordNotFound这个错误先前写的时候发现result.RecordNotFound()这个方法没用,然后看看源码,在callback_query.go中有以下逻辑:ifkind:=results.Kind();kind==reflect.Slice{isSlice=trueresul
- 【Go】-基于Gin和GORM的小清单项目
knoci
Go语言学习golanggin开发语言
目录项目介绍简介技术项目结构项目分析总结项目介绍简介项目地址:knoci/list:基于Gin的待办清单小项目(github.com)一个仿照github/Q1mi/bubble做的一个gin框架练习技术gin框架gorm操作PostgreSQLini配置文件项目结构list├──README.md├──config│└──config.ini├──controller│└──controller
- Gin-Web: 简洁高效的Golang Web框架
黎情卉Desired
Gin-Web:简洁高效的GolangWeb框架gin-web由gin+gorm+jwt+casbin组合实现的RBAC权限管理脚手架Golang版,搭建完成即可快速、高效投入业务开发项目地址:https://gitcode.com/gh_mirrors/gi/gin-web项目简介是一个基于流行的Gin框架构建的增强型Go语言Web开发框架。它旨在提供一套完整的解决方案,包括ORM支持、API文
- gorm scan查询报了Scan error on column index 0, name \“count\“: converting NULL to int is unsupported
ezreal_pan
数据库
解决方案1:使用sql.NullInt64。只做简单记录。示例:func(oOrderModel)GetInfoByUid(ctxcontext.Context,idstring,fieldsstring)(sql.NullInt64,error){varcountsql.NullInt64db:=o.dbdb=db.WithContext(ctx)err:=db.Table(OrderTable
- golang学习笔记——grom连接mysql
怪我冷i
golang从入门到入门golang
GORM指南ThefantasticORMlibraryforGolangaimstobedeveloperfriendly.Golang的ORM库旨在对开发人员友好。特性全功能ORM关联(HasOne,HasMany,BelongsTo,ManyToMany,多态,单表继承)Create,Save,Update,Delete,Find中钩子方法支持Preload、Joins的预加载事务,嵌套事务
- 记录一次gorm查询无数据无报错
学海无涯码代码
mysqlGo语言SQL查询时间类型数据库操作接口
sql:="selectuser_id,add_time,page_namefrompv_zsjpv_2022_5where"+"add_timebetween?and?anduser_id=?andproduct_key=?limit?,?"varparams[]interface{}params=append(params,"2022-05-0100:00:00")params=append(
- GROM学习
码小白l
golang
什么是GROMGo语言ORM(对象关系映射)库,它提供了一种高效、简洁的方式来操作数据库。通过将数据库表映射为Go语言的结构体,GORM让数据库操作变得更加直观和类型安全。GORM支持主流的数据库系统,包括MySQL、PostgreSQL、SQLite和SQLServer等GORM提供了一系列的API来操作MySQL数据库。以下是一些常用的GORMAPI操作,以及它们在操作MySQL时的用法:安装
- 【GO】七、架构基础与 GORM 简要介绍
清河__
Gogolang架构开发语言
架构分析单体应用的部署架构:这种单体应用架构在少部分人开发时,不会产生太多问题,但在项目结构足够大时,就会产生多种需求同时开发的情况,多种需求的同时开发一定会产生先后与master合并的情况,后合并的需求就需要先拉取最新代码再进行回归测试,(无论是否产生代码冲突都必须进行回归测试)在这种情况下就极大的降低了开发效率另外,我们在进行各个需求开发时,操作同一个数据库,有很大的可能性出现操作同一张表导致
- golang命令行工具gtcli,实现了完美集成与结构化的gin脚手架,gin-restful-api开箱即用
大白说
golanggolanggtcligingin-restful-apigin-layout
关于gtoolsgolang非常奈斯,gin作为web框架也非常奈斯,但我们在开发过程中,前期搭建会花费大量的时间,且还不尽人意。为此我集成了gin-restful-api的模板gin-layout,还有脚手架一键生成项目。集成相关ginviperzapgorm…脚手架使用goget-ugithub.com/atpuxiner/gtools/gtcligoinstallgithub.com/atp
- gorm day9(结)
TOMOT77
数据库golangmysqlsql
gormday9实体关联gorm会话实体关联自动创建、更新在创建、更新数据时,GORM会通过Upsert自动保存关联及其引用记录。user:=User{Name:"jinzhu",BillingAddress:Address{Address1:"BillingAddress-Address1"},ShippingAddress:Address{Address1:"ShippingAddress-A
- gorm day8
TOMOT77
数据库golangmysql
gormday8gormHasMany关系gormManyToMany关系gormHasMany关系HasMany在GORM(Go的一个对象关系映射库)中,“HasMany”关系表示一个实体与另一个实体之间的一对多关系。这意味着一个实体(我们称之为"父"实体)可以拥有指向多个其他实体("子"实体)的引用。这种关系在数据库中通常通过使用外键在"子"实体上来实现。举个例子来说明GORM中定义和使用的H
- Chapter 8 - 16. Congestion Management in TCP Storage Networks
mounter625
Linuxkernel网络服务器运维linuxkernel
ActiveQueueManagementAspreviouslymentioned,droppingormarkingschemesforpacketsthatarewaitinginaqueuecansignificantlyinfluenceTCP’sbehaviorontheenddevices.TheseschemesarecalledActiveQueueManagement(AQM)
- gorm day7
TOMOT77
数据库sqlgolang
gormday7gormBelongsTo关系gormHasOne关系gormBelongsTo关系在看文档之前先进行一些基本概念的学习:什么是主键?(PrimaryKey)主键是一个表中的特定列(或一组列),用来唯一标识表中的每一行记录。一个表只能有一个主键。主键的值必须是唯一的,不允许为空(NULL)。主键通常是表的第一个列,但也可以设置为多列的组合,这种情况称为复合主键。什么是外键?(For
- gorm day6
TOMOT77
数据库golang
gormday6SQL构建器原生SQL原生SQL和ScantypeResultstruct{IDintNamestringAgeint}varresultResultdb.Raw("SELECTid,name,ageFROMusersWHEREname=?",3).Scan(&result)db.Raw("SELECTid,name,ageFROMusersWHEREname=?",3).Scan
- gorm day5
TOMOT77
数据库golang
gormday5gorm更新删除一条记录删除一条记录时,删除对象需要指定主键,否则会出发批量Delete,例如//Email的ID是`10`db.Delete(&email)//DELETEfromemailswhereid=10;//带额外条件的删除db.Where("name=?","jinzhu").Delete(&email)//DELETEfromemailswhereid=10ANDn
- 探索Gorm - Golang流行的数据库ORM框架
鼠鼠我捏,要死了捏
Golang全栈golang数据库adb后端
️个人主页:鼠鼠我捏,要死了捏的主页️系列专栏:Golang全栈-专栏️个人学习笔记,若有缺误,欢迎评论区指正前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站https://www.captainbed.cn/kitie。前言我们在之前的专栏中讲解了在Go中如何使用原生的database/sql库完成数据库编程,今天我们继续来了解一下一款在go中常用
- go-zero数据库
四月__
后端
目录结构说明本节内容的代码都放在/rpc/database/下,目录结构如下:├─gorm├─sql│└─user├─sqlc└─sqlxgorm:gorm相关代码;sql:主要是sql文件,下面可以进一步分组;sqlc:带缓存的数据库操作代码;sqlx:无缓存的数据库操作代码;相关命令参考:goctlmodelmysql指令goctlmodelmysql指令用于生成基于MySQL的model代码
- gorm day4
TOMOT77
golang数据库mysql
gormday4高级查询高级查询智能选择字段GORM允许通过Select方法选择特定的字段,如果你在应用程序中经常使用此功能,你也可以定义一个较小的结构体,以实现调用API时自动选择特定的字段,例如:typeUserstruct{IDuintNamestringAgeintGenderstring//假设后面还有几百个字段...}typeAPIUserstruct{IDuintNamestring
- golang常用库之-操作数据库ORM:GORM 包介绍 | 一些 GORM 提示和注意事项
西京刀客
Gogolang数据库开发语言
文章目录golang操作数据库ORM:GORM包介绍及实战一、什么是GORM包二、GORM基本使用官方快速开始demo一些GORM提示和注意事项参考golang操作数据库ORM:GORM包介绍及实战一、什么是GORM包官网:https://gorm.io/github:https://github.com/go-gorm/gorm官方文档:https://gorm.io/zh_CN/docs/in
- 研发误删的库,凭什么要 DBA 承担责任
镇楼图三个角色删库以及更宽泛的数据库变更场景中有三个角色,业务研发,DBA以及使用的数据库变更工具:业务研发通常指的是后端研发。国内最主流的技术栈还是Java,此外Go也有一部分,另有全栈的则使用Node。这些语言通常会配备对应的ORM和数据库打交道,Java的MyBatis,Go的GORM,Node的TypeORM等。DBA就是数据库管理员。有些公司即使没有全职DBA,也会有看着数据库的那个人。
- 研发误删的库,凭什么要 DBA 承担责任
Bytebase
数据库运维DBA开发者数据库管理DevOps
镇楼图三个角色删库以及更宽泛的数据库变更场景中有三个角色,业务研发,DBA以及使用的数据库变更工具:业务研发通常指的是后端研发。国内最主流的技术栈还是Java,此外Go也有一部分,另有全栈的则使用Node。这些语言通常会配备对应的ORM和数据库打交道,Java的MyBatis,Go的GORM,Node的TypeORM等。DBA就是数据库管理员。有些公司即使没有全职DBA,也会有看着数据库的那个人。
- 每日一词 109 | dictate
小小_d574
1.认识这个词(基础篇)词:dictate英英释义:toinfluencesomethingormakeitnecessary例句:Whydoessocietytrytodictatehowpeopleshoulddie?2.体会这个词(进阶篇)“dictate”作为动词可以表示“听写”,我们常说的“听写法”就是它的名词形式“dictation”。不过今天我们学习的是它的另外一个意思,dictat
- Spring +Mybaits+Spring Boot+Spring Cloud
奈斯。-
workspringjava后端
Spring组件:SpringCore:核心类库,提供IOC服务;SpringContext:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等);SpringAOP:AOP服务;SpringDAO:对JDBC的抽象,简化了数据访问异常的处理;SpringORM:对现有的ORM框架的支持;SpringWeb:提供了基本的面向web的总和特性,例如多方文件上传;SpringMVC:提
- golang通用后台管理项目——Go+Vue通用后台管理项目实战
怪我冷i
golang从入门到入门golangvue.js开发语言
Go+Vue通用后台管理项目实战1、掌握组件中业务逻辑抽离的方法2、掌握jwt,日志,跨域,鉴权中间件的使用3、掌握基于gorm的sql多表查询4、掌握gin-swag的应用5、掌握go语言开发前后端分离项目的能力6、从0到1开发完整前后端分离项目的能力技术栈:go后端gin+gorm+swagger+reids+jwt+base64Captcha+mysql+yamlvue前端vue+axios
- Golang Excel导入数据并标注此行背景色和异常数据提示暂时
承诺一时的华丽
项目架构:Echo+Gorm+excelize依赖开源项目:github.com/360EntSecGroup-Skylar/excelize开源项目中文文档:https://xuri.me/excelize/zh-hans/excel模板image.pngfuncImportAccountByExcel(cecho.Context)error{//文件地址path:=c.FormValue("p
- 什么是数据库软删除,什么场景下要用软删除?(go GORM硬删除)
西京刀客
Go数据库golang
文章目录什么是数据库软删除,什么场景下要用软删除?goGORM硬删除什么是数据库软删除什么场景下要用软删除什么是数据库软删除,什么场景下要用软删除?goGORM硬删除使用的是GORM,默认启用了软删除功能,即通过将deleted_at字段设置为非空来标记删除的记录。这就是为什么在执行db.Delete(&image)后,实际上只是更新了deleted_at字段而不是真正删除记录。goGORM中想要
- Spring框架快速入门以及框架的构建
only-code
#Spring5sprintjava
spring的官网:Spring|HomeSpring官方下载依赖jar包地址:JFrog目录七大核心模块TestCoreContainerAOPDataAccessWebSpringCoreSpring-BeansSpringContextSpring-ExpressionSpringAOPJDBC和DAO模块(SpringDAO)spring-transactionSpringORMSprin
- Golang的学习路线
西木Qi
golanggolang
Golang的学习路线1基础阶段2成长阶段3进阶阶段4入门教程4.1Go语言入门教程4.2码神之路4.3李文周的博客4.4Go语言教程5其他分为三个阶段:基础阶段、成长阶段、进阶阶段。1基础阶段1、学习计算机组成、操作系统、计算机网络、数据结构、算法等,这个阶段学的越扎实越好。2成长阶段go语言基础;标准库学习;Git;MySQL、Redis;框架学习,比如Gin、Gorm、Grpc、docker
- Golang gorm 结构体定义使用
wx479
Golanggolang数据库java
一、定义一个用户注册的结构体条件:1、用户名和密码不能为空,用户名长度大于2小于12密码长度大于6小于12typeUserRegisterFormstruct{UserNamestring`json:"username"form:"username"query:"username"binding:"required,gte=2,lte=12"`PassWordstring`json:"passwo
- JAVA基础
灵静志远
位运算加载Date字符串池覆盖
一、类的初始化顺序
1 (静态变量,静态代码块)-->(变量,初始化块)--> 构造器
同一括号里的,根据它们在程序中的顺序来决定。上面所述是同一类中。如果是继承的情况,那就在父类到子类交替初始化。
二、String
1 String a = "abc";
JAVA虚拟机首先在字符串池中查找是否已经存在了值为"abc"的对象,根
- keepalived实现redis主从高可用
bylijinnan
redis
方案说明
两台机器(称为A和B),以统一的VIP对外提供服务
1.正常情况下,A和B都启动,B会把A的数据同步过来(B is slave of A)
2.当A挂了后,VIP漂移到B;B的keepalived 通知redis 执行:slaveof no one,由B提供服务
3.当A起来后,VIP不切换,仍在B上面;而A的keepalived 通知redis 执行slaveof B,开始
- java文件操作大全
0624chenhong
java
最近在博客园看到一篇比较全面的文件操作文章,转过来留着。
http://www.cnblogs.com/zhuocheng/archive/2011/12/12/2285290.html
转自http://blog.sina.com.cn/s/blog_4a9f789a0100ik3p.html
一.获得控制台用户输入的信息
&nbs
- android学习任务
不懂事的小屁孩
工作
任务
完成情况 搞清楚带箭头的pupupwindows和不带的使用 已完成 熟练使用pupupwindows和alertdialog,并搞清楚两者的区别 已完成 熟练使用android的线程handler,并敲示例代码 进行中 了解游戏2048的流程,并完成其代码工作 进行中-差几个actionbar 研究一下android的动画效果,写一个实例 已完成 复习fragem
- zoom.js
换个号韩国红果果
oom
它的基于bootstrap 的
https://raw.github.com/twbs/bootstrap/master/js/transition.js transition.js模块引用顺序
<link rel="stylesheet" href="style/zoom.css">
<script src=&q
- 详解Oracle云操作系统Solaris 11.2
蓝儿唯美
Solaris
当Oracle发布Solaris 11时,它将自己的操作系统称为第一个面向云的操作系统。Oracle在发布Solaris 11.2时继续它以云为中心的基调。但是,这些说法没有告诉我们为什么Solaris是配得上云的。幸好,我们不需要等太久。Solaris11.2有4个重要的技术可以在一个有效的云实现中发挥重要作用:OpenStack、内核域、统一存档(UA)和弹性虚拟交换(EVS)。
- spring学习——springmvc(一)
a-john
springMVC
Spring MVC基于模型-视图-控制器(Model-View-Controller,MVC)实现,能够帮助我们构建像Spring框架那样灵活和松耦合的Web应用程序。
1,跟踪Spring MVC的请求
请求的第一站是Spring的DispatcherServlet。与大多数基于Java的Web框架一样,Spring MVC所有的请求都会通过一个前端控制器Servlet。前
- hdu4342 History repeat itself-------多校联合五
aijuans
数论
水题就不多说什么了。
#include<iostream>#include<cstdlib>#include<stdio.h>#define ll __int64using namespace std;int main(){ int t; ll n; scanf("%d",&t); while(t--)
- EJB和javabean的区别
asia007
beanejb
EJB不是一般的JavaBean,EJB是企业级JavaBean,EJB一共分为3种,实体Bean,消息Bean,会话Bean,书写EJB是需要遵循一定的规范的,具体规范你可以参考相关的资料.另外,要运行EJB,你需要相应的EJB容器,比如Weblogic,Jboss等,而JavaBean不需要,只需要安装Tomcat就可以了
1.EJB用于服务端应用开发, 而JavaBeans
- Struts的action和Result总结
百合不是茶
strutsAction配置Result配置
一:Action的配置详解:
下面是一个Struts中一个空的Struts.xml的配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
&quo
- 如何带好自已的团队
bijian1013
项目管理团队管理团队
在网上看到博客"
怎么才能让团队成员好好干活"的评论,觉得写的比较好。 原文如下: 我做团队管理有几年了吧,我和你分享一下我认为带好团队的几点:
1.诚信
对团队内成员,无论是技术研究、交流、问题探讨,要尽可能的保持一种诚信的态度,用心去做好,你的团队会感觉得到。 2.努力提
- Java代码混淆工具
sunjing
ProGuard
Open Source Obfuscators
ProGuard
http://java-source.net/open-source/obfuscators/proguardProGuard is a free Java class file shrinker and obfuscator. It can detect and remove unused classes, fields, m
- 【Redis三】基于Redis sentinel的自动failover主从复制
bit1129
redis
在第二篇中使用2.8.17搭建了主从复制,但是它存在Master单点问题,为了解决这个问题,Redis从2.6开始引入sentinel,用于监控和管理Redis的主从复制环境,进行自动failover,即Master挂了后,sentinel自动从从服务器选出一个Master使主从复制集群仍然可以工作,如果Master醒来再次加入集群,只能以从服务器的形式工作。
什么是Sentine
- 使用代理实现Hibernate Dao层自动事务
白糖_
DAOspringAOP框架Hibernate
都说spring利用AOP实现自动事务处理机制非常好,但在只有hibernate这个框架情况下,我们开启session、管理事务就往往很麻烦。
public void save(Object obj){
Session session = this.getSession();
Transaction tran = session.beginTransaction();
try
- maven3实战读书笔记
braveCS
maven3
Maven简介
是什么?
Is a software project management and comprehension tool.项目管理工具
是基于POM概念(工程对象模型)
[设计重复、编码重复、文档重复、构建重复,maven最大化消除了构建的重复]
[与XP:简单、交流与反馈;测试驱动开发、十分钟构建、持续集成、富有信息的工作区]
功能:
- 编程之美-子数组的最大乘积
bylijinnan
编程之美
public class MaxProduct {
/**
* 编程之美 子数组的最大乘积
* 题目: 给定一个长度为N的整数数组,只允许使用乘法,不能用除法,计算任意N-1个数的组合中乘积中最大的一组,并写出算法的时间复杂度。
* 以下程序对应书上两种方法,求得“乘积中最大的一组”的乘积——都是有溢出的可能的。
* 但按题目的意思,是要求得这个子数组,而不
- 读书笔记-2
chengxuyuancsdn
读书笔记
1、反射
2、oracle年-月-日 时-分-秒
3、oracle创建有参、无参函数
4、oracle行转列
5、Struts2拦截器
6、Filter过滤器(web.xml)
1、反射
(1)检查类的结构
在java.lang.reflect包里有3个类Field,Method,Constructor分别用于描述类的域、方法和构造器。
2、oracle年月日时分秒
s
- [求学与房地产]慎重选择IT培训学校
comsci
it
关于培训学校的教学和教师的问题,我们就不讨论了,我主要关心的是这个问题
培训学校的教学楼和宿舍的环境和稳定性问题
我们大家都知道,房子是一个比较昂贵的东西,特别是那种能够当教室的房子...
&nb
- RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系
daizj
oraclermanfilespersetPARALLELISM
RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系 转
PARALLELISM ---
我们还可以通过parallelism参数来指定同时"自动"创建多少个通道:
RMAN > configure device type disk parallelism 3 ;
表示启动三个通道,可以加快备份恢复的速度。
- 简单排序:冒泡排序
dieslrae
冒泡排序
public void bubbleSort(int[] array){
for(int i=1;i<array.length;i++){
for(int k=0;k<array.length-i;k++){
if(array[k] > array[k+1]){
- 初二上学期难记单词三
dcj3sjt126com
sciet
concert 音乐会
tonight 今晚
famous 有名的;著名的
song 歌曲
thousand 千
accident 事故;灾难
careless 粗心的,大意的
break 折断;断裂;破碎
heart 心(脏)
happen 偶尔发生,碰巧
tourist 旅游者;观光者
science (自然)科学
marry 结婚
subject 题目;
- I.安装Memcahce 1. 安装依赖包libevent Memcache需要安装libevent,所以安装前可能需要执行 Shell代码 收藏代码
dcj3sjt126com
redis
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
前面3步应该没有问题,主要的问题是执行make的时候,出现了异常。
异常一:
make[2]: cc: Command not found
异常原因:没有安装g
- 并发容器
shuizhaosi888
并发容器
通过并发容器来改善同步容器的性能,同步容器将所有对容器状态的访问都串行化,来实现线程安全,这种方式严重降低并发性,当多个线程访问时,吞吐量严重降低。
并发容器ConcurrentHashMap
替代同步基于散列的Map,通过Lock控制。
&nb
- Spring Security(12)——Remember-Me功能
234390216
Spring SecurityRemember Me记住我
Remember-Me功能
目录
1.1 概述
1.2 基于简单加密token的方法
1.3 基于持久化token的方法
1.4 Remember-Me相关接口和实现
- 位运算
焦志广
位运算
一、位运算符C语言提供了六种位运算符:
& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
>> 右移
1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。
例如:9&am
- nodejs 数据库连接 mongodb mysql
liguangsong
mongodbmysqlnode数据库连接
1.mysql 连接
package.json中dependencies加入
"mysql":"~2.7.0"
执行 npm install
在config 下创建文件 database.js
- java动态编译
olive6615
javaHotSpotjvm动态编译
在HotSpot虚拟机中,有两个技术是至关重要的,即动态编译(Dynamic compilation)和Profiling。
HotSpot是如何动态编译Javad的bytecode呢?Java bytecode是以解释方式被load到虚拟机的。HotSpot里有一个运行监视器,即Profile Monitor,专门监视
- Storm0.9.5的集群部署配置优化
roadrunners
优化storm.yaml
nimbus结点配置(storm.yaml)信息:
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional inf
- 101个MySQL 的调节和优化的提示
tomcat_oracle
mysql
1. 拥有足够的物理内存来把整个InnoDB文件加载到内存中——在内存中访问文件时的速度要比在硬盘中访问时快的多。 2. 不惜一切代价避免使用Swap交换分区 – 交换时是从硬盘读取的,它的速度很慢。 3. 使用电池供电的RAM(注:RAM即随机存储器)。 4. 使用高级的RAID(注:Redundant Arrays of Inexpensive Disks,即磁盘阵列
- zoj 3829 Known Notation(贪心)
阿尔萨斯
ZOJ
题目链接:zoj 3829 Known Notation
题目大意:给定一个不完整的后缀表达式,要求有2种不同操作,用尽量少的操作使得表达式完整。
解题思路:贪心,数字的个数要要保证比∗的个数多1,不够的话优先补在开头是最优的。然后遍历一遍字符串,碰到数字+1,碰到∗-1,保证数字的个数大于等1,如果不够减的话,可以和最后面的一个数字交换位置(用栈维护十分方便),因为添加和交换代价都是1