- SpringBoot2:web开发常用功能实现及原理解析-整合EasyExcel实现Excel导入导出功能
生产队队长
SpringAllexcelspringboot
1、工程包结构主要是这5个Java类2、导入EasyExcel包这里同时贴出其他相关springboot的基础包org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-devtoolsruntimetrueorg.springframework.bootspring-boot-config
- 前端同学必备:教你如何安装、使用Chrome的vue-devtools插件
界忆
前端编程Vue-devtools插件chromedevtools
I.介绍vue-devtools插件Vue-devtools是一个Chrome浏览器插件,它是一个浏览器调试工具,用于开发Vue.js应用程序。它可以用于Vue.js应用程序的调试,可以更好地了解应用程序的结构和状态,以及帮助快速修复代码错误。Vue-devtools插件的作用和优势如下:1.调试Vue.js应用程序:Vue-devtools是一个强大的调试工具,可以帮助开发人员正确地调试应用程序
- 探索 Puppeteer-Screen-Recorder:高效网页录屏工具
白威东
探索Puppeteer-Screen-Recorder:高效网页录屏工具puppeteer-screen-recorder项目地址:https://gitcode.com/gh_mirrors/pu/puppeteer-screen-recorder项目介绍Puppeteer-Screen-Recorder是一款基于Puppeteer的插件,利用原生的ChromeDevToolsProtocol实
- Vue-devtools安装
zhouhao_180
方法一:1、下载安装包到本地https://github.com/vuejs/vue-devtools2、打开下载好的文件夹,按住shift+鼠标右键,选择在此处打开Powershell窗口3、执行命令npminstall4、执行命令npmrunbuild这一步一定不要忘了,没有执行这一步的话,项目文件夹shells>chrome文件夹里会少一个src文件夹,这里会报错:无法加载背景脚本"buil
- 开源项目教程:Serverless Dev Tools 深度指南
史恋姬Quimby
开源项目教程:ServerlessDevTools深度指南sls-dev-toolsDevToolsfortheServerlessWorld-Issues,PRsand⭐️welcome!项目地址:https://gitcode.com/gh_mirrors/sl/sls-dev-tools1.项目介绍ServerlessDevTools是一个专为无服务器架构设计的开发者工具集合,它提供了自动化
- Linux安装R包TwoSampleMR遇见的报错
xbinbzy
最近一位老友在倒腾GWAS的研究,发现R包TwoSampleMR用于pQTL的分析,让我在Linux系统上帮忙安装下,根据网页的安装提示进行操作(https://github.com/MRCIEU/epigraphdb-pqtl/),在操作过程中遇见了一些报错和实践的解决方案,在此文特此记录:library(devtools)install_github("MRCIEU/TwoSampleMR")
- centos换源安装升级gcc
youzjuer
centoslinux运维
使用devtools升级安装的时候,由于此库已经停止更新了,因此需要切换阿里源SCL+Devtoolset安装与使用笔记-腾讯云开发者社区-腾讯云(tencent.com)https://cloud.tencent.com/developer/article/18891811yum安装yuminstallcentos-release-sclcentos-release-scl-rh2换源CentO
- nginx正向代理-内网服务器通过代理服务器访问外部网络
kiboyiscoming
JAVAnginx正向代理nginxjavalinux
#1.安装编译工具yuminstallgccgcc-c++make-yyuminstallrpm-buildrpmdevtools-y2.安装依赖yuminstallpcre-develpcre-yyuminstallzlib-develzlib-yyuminstallopenssl-developenssl-yyuminstallredhat-lsb-core-yyuminstallgit-y3
- 用友U8-CRM exportdictionary.php SQL注入
iSee857
漏洞复现安全
0x01漏洞描述:用友U8-CRM的/devtools/tools/exportdictionary.php接口处存在SQL注入漏洞。这可能导致泄露敏感数据、破坏数据库完整性,甚至获取对数据库的完全控制。0x02影响版本:V16.1,V16.0,V15.1,V15.0,V130x03搜索语句:Fofa:title="用友U8CRM"0x04漏洞复现:GET/devtools/tools/expor
- Vue-devtools 大揭秘:Vue3.X 和 Vue2.X 调试工具安装及使用指南
前端基地
Vue3.0从入门到精通vue.js前端javascriptchromedevtoolschromenode.js前端框架
目录Vue-devtools介绍Vue2.X调试工具Vue-devtools的安装Vue2.X调试工具Vue-devtools的使用Vue3.X调试工具Vue-devtools的安装Vue3.X调试工具Vue-devtools的使用Vue-devtools介绍Vue-devtools乃是一款构建于Chrome浏览器之上的插件,其主要功能是对Vue应用进行调试操作,通过它能够极为显著地提升我们在调试
- Puppeteer前端插件
Hello.Reader
webjavascript前端node.jsjavascript
一、概述Puppeteer是一个Node库,它提供了一个高级API来通过DevTools协议控制Chromium或Chrome。Puppeteer默认以headless模式运行,但是可以通过修改配置文件运行“有头”模式。你可以在浏览器中手动执行的绝大多数操作都可以使用Puppeteer来完成!下面是一些示例:生成页面PDF。抓取SPA(单页应用)并生成预渲染内容(即“SSR”(服务器端渲染))。自
- electron打包后调用控制台方法
浩星
electronelectronvue
前言:electron打包桌面应用的时候,本地启动时,f12调试功能台是自动打开的,但是我们打包出来以后,有某些特殊时刻也是需要打开控制台的,他默认不打开使用步骤:我们打开我们项目中自动生成/手动生成的配置文件background.js以我自己的配置文件为例:核心是:win.webContents.openDevTools()打开调试框functioncreateWindow(){//关闭顶部导航
- Chrome DevTools调试技巧
dingFY
【1】DevTools触发伪类右键单击Elements面板中的元素节点并选择“forcestate”。或者在Sytle子窗格中单击“:hov”图标。可以触发元素上的伪类来研究元素在悬停时的效果和样式【2】DevTools-在任何网页上运行预定义的代码片段DevTools中有一个叫做代码段的特性,它允许您可以在网页上运行的测试代码(这比在控制台面板中重新键入JavaScript代码要方便一些)单击S
- chrome devtools 技巧
1.Chrome117可以直接修改接口返回的数据了在前后端联调的时候,往往后端的数据会出现问题,这时候通知后端改接口,改数据,他们修改发布需要个过程,而前端很想把当前的功能调通,这个时候可直接在devtools修改接口返回的数据,简直不要太香。具体怎么操作可移步Chrome117重大更新:Network面板就能发起Mock请求!!!
- 九:什么是热部署,为什么要用这个?
董小姐orz(娜)
javaspringbootspring
什么是热部署(可以线上使用,但是最好不要,易于黑客攻击)①应用正在运行的时候,不需要重新启动应用。②对于Java应用程序来说,热部署就是在运行时更新java类文件好处:不需要手工启动应用,提高本地开发效率。常见实现热部署的方式①Jrebel②SpringLoaded③Spring-boot-devtools演示一下第三种方法:第一步:配置pom.xmlorg.springframework.boo
- vue3 使用 vant4时 Uncaught (in promise) TypeError: api.now is not a function vue-devtools
_终会遇见_
99工作中遇到的一些问题vue.jsvuechromedevtools
如图,在使用vue3+vant4.x开发Tabbar时,一切按照官网文档demo的示例写的然后在运行的时候,发现tabbar无法切换路由,并且控制台显示以下内容在多次cn.bing无果后只能自己找问题于是点开代码找到对应错误的位置,发现有个叫api.now()的方法报错了,于是向上找这个api是什么找到api后,看了看附近代码,发现好像和devtools有关,当换了个不带vue-devtools的
- Dart 3.2 更新盘点
作者/KevinMoore和MichaelThomsen我们隆重宣布推出Dart3.2,这一版本针对以下方面做出了改进:新增了一项语言功能,可对私有final字段进行非空升级;通过新增的互操作功能改善了开发者体验;支持DevTools的扩展程序;并更新了我们的Web路线图,包括提供对Wasm(又名WebAssembly)的支持。私有final字段的非空升级自我们在Dart2.12中引入健全的空安全
- 分析网站加载性能各项指标、Lighthouse工具的使用
陨石猎人
前端性能优化
分析网站首次加载的性能可以通过查看多个关键指标来实现。以下是一些常见的性能指标以及如何分析它们:如何分析网站首次加载的性能各项指标首次内容绘制(FirstPaint):定义:首次内容绘制是指浏览器第一次将像素呈现到屏幕上的时间。分析方法:在ChromeDevTools或类似的开发者工具中,通过"Performance"面板查看时间轴。首次内容绘制通常在时间轴上显示为"FirstPaint"事件。首
- Vue(一)
静水流深webbb
在使用Vue时,在浏览器上安装VueDevtools。它允许你在一个更友好的界面中审查和调试Vue应用。通过https://cn.vuejs.org/官方网站下载vue.js文件和vue.min.js文件,并用标签引入。初始vue第一步:准备一个容器第二步:创建一个Vue对象(newVue({}))el:'',指定当前的vue对象操作DOM容器。data:{},定义当前vue对象管理的数据。met
- Android Weekly Notes #430
圣骑士wind
AndroidWeeklyIssue#430SuperchargeAndroiddevwithScrcpyandADBWIFI这个工具:https://github.com/Genymobile/scrcpy#get-the-app可以把物理设备投屏到电脑上.GradlekotlinDSL把gradle脚本从groovy迁移到kotlin.20AndroidDevToolsYou’veProbab
- Vue3笔记
山重水复疑无路
vue.js
创建vue-cli创建基于vite创建webpack和vite构建对比图基础官方推荐插件选项式api和组合式api对比修改组件name插件在devtools工具上显示组件name自动补充ref的value插件,vol基本语法ref和reactiveObject.assign方法可以动态更新reactive定义的对象watchwatchEffectsetup语法糖中自定义导出内容标签的ref属性(获
- CDP和Chrome
daliucheng
自动化测试chrome自动化pythonnode.js
CDP和ChromeCDP和WebDriverProtocolWebDriver和ChromeDevToolsProtocol(CDP)是用于自动化浏览器的两个主要协议,大多数的浏览器自动化工具都是基于上述其中之一来实现的。可以通过这两种形式来和浏览器交互,通过代码来控制浏览器,完成浏览器的自动化行为(包括网页加载,爬虫,截图,导出pdf等)。WebDriverProtocol官网地址:链接Web
- R语言linkET包绘制相关性组合网络热图
天桥下的卖艺者
R语言科研绘图r语言开发语言
热图就是使用颜色来表示数据相关性的图。能绘制热图的R包很多,既往我们已经介绍了《R语言pheatmap包绘制热图》,今天咱们来介绍一下R语言linkET包绘制相关性组合网络热图。相关性热图的意思热图和其他数据的关联性,比较的是多数据间的内在关系。linkET包是我们的一个国人写的,目前需要使用devtools::install_github下载,作者对包的描述是万物皆可互联,还挺有意思的。我们先下
- IDEA2023.3.4开启SpringBoot项目的热部署【简单明了4步操作】
面向丈母娘编程
工具springboot
添加devtools依赖org.springframework.bootspring-boot-devtoolsruntimetrueIDEA开启自动编译开启运行中热部署低版本需要双击shift搜索registry高版本设置如下所示DeBug启动项目
- CentOS7 安装 Redis6过程
闪灵之光
下载rediscd/optyumintall-ywgetwgethttps://download.redis.io/releases/redis-6.0.9.tar.gz环境准备yuminstallgccgcc-vyum-yinstallcentos-release-scl#升级到9.1版本yum-yinstalldevtoolset-9-gccdevtoolset-9-gcc-c++devtoo
- vue_dev_tools工具下载安装打包
良辰美景好时光
vuevue.js前端
vue_dev_tools工具下载安装打包一、简介二、安装方式2.1.安装图文2.2.打包工具endl一、简介使用Vue时,在浏览器上安装VueDevtoolsVueDevtools是Vue官方发布的调试浏览器插件,可以安装在Chrome和Firefox等浏览器上,直接内嵌在开发者工具中,使用体验流畅vue-devtools是一款基于Chrome浏览器的扩展,用于调试Vue应用二、安装方式VueD
- Vue入门
绯泉
1.初始化vue第一步:给Vue准备一个容器:{{name}}{{age}}第二步:创建Vue实例://不允许vue-devtools检查代码Vue.config.devtools=false//vue在启动时不显示生产提示Vue.config.productionTip=false//初始化一个Vue实例,在创建Vue实例时,需要给Vue传递一个配置选项,该配置选项是一个对象letvm=newV
- idea中实现springboot热部署
凉笙2019
一,在pom.xml中添加如下配置org.springframework.bootspring-boot-devtoolstruetrueorg.springframework.bootspring-boot-maven-plugintrue二,在file-settings-build-complier下勾选image.png三,按ctrl+shift+alt+/进入re'gist勾选image.
- 精准调试-vue调试工具vue-devtools安装及完整使用教程
zoomlaCMS
*这是Zoomla!逐浪CMS开发团队的作品,用于集成zoomlastudio系列开发工具笔记。*本文主要介绍vue的调试工具vue-devtools的安装和使用工欲善其事,必先利其器,快快一起来用vue-devtools来调试开发你的vue项目吧如果你能连上googlgChrome应用商店,那么一切好说,你只要输访问下面网址:https://chrome.google.com/webstore/
- 解决安装Vue.js devtools后出现Vue.js not detected
iOdysseus
在我安装vue.jsdevtools之后,此插件状态一直是灰色,鼠标防止在此插件上时会显示Vue.jsnotdetected。但是打开打开Bilibili(https://www.bilibili.com/,B站是用的vue),你就可以发现这个图标变绿。证明此插件是可以使用的。网上给出的答案也大部分都是重新安装此插件,但是我在扩展程序里面有个详细信息扩展程序接下来点开详细信息会发现打开详细信息里面
- 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