- mac中svn,git的配置与使用
白云影中仙
gitsvn
subversionbrew安装brewinstallsubversion#查看下载的软件brewlistsvn配置#1。创建资源库位置,自己设置目录svnadmincreate/usr/java/testJenk#2.设置权限,在你创建的目录的conf文件里(会自动生成)#svnserve.confanon-access=readanon-access=read#代表匿名访问的时候是只读的,若改
- JupyterLab xr.open_dataset不识别中文路径
拾穗哥
xr经验分享python
long0=xr.open_dataset("long.grd")运行以后发现已经生成的long.grd文件找不到FileNotFoundError:[Errno2]Nosuchfileordirectory:'F:\\03-专利\\\\新建文件夹\\ong.grd'多次试验发现:xr.open_dataset不识别中文路径将路径改为英文即可
- MongoDB中单对象大小超16M的存储方案
yuanpan
mongodb数据库
在MongoDB中,单个文档的大小限制为16MB。如果某个对象(文档)的大小超过16MB,可以通过以下几种方案解决:1.使用GridFS适用场景:需要存储大文件(如图像、视频、文档等)。原理MongoDB的GridFS是一种专门用于存储超过16MB文件的工具。它会将大文件分割成多个chunk(默认大小255KB),并存储在两个集合中:fs.files:存储文件的元数据(如文件名、大小、类型等)。f
- flutter引入高德地图_Flutter接入高德地图后运行报错
耀答案
flutter引入高德地图
1、flutter开发接入高德地图包后运行报下面错误信息fatalerror:'simple_permissions/simple_permissions-Swift.h'filenotfound运行在iPhone手机时出现以下错误信息:===BUILDTARGETurl_launcherOFPROJECTPodsWITHCONFIGURATIONDebug===/Users/bobo/flutt
- filebeat收集各种类型日志写入logstash,再从logstash中读取日志写入kafka中(有filebeat)
运维实战课程
kafka分布式
filebeat收集各种类型日志写入logstash,再从logstash中读取日志写入kafka中(有filebeat)如果对运维课程感兴趣,可以在b站上、A站或csdn上搜索我的账号:运维实战课程,可以关注我,学习更多免费的运维实战技术视频0.环境机器规划:192.168.43.163kafka1192.168.43.164kafka2192.168.43.165kafka3192.168.4
- Linux(Centos 7.6)命令详解:wc
豆是浪个
centoslinux运维
1.命令作用打印文件的行数、单词数、字节数,如果指定了多个文件,还会打印以上三种数据的总和(Printnewline,word,andbytecountsforeachFILE,andatotallineifmorethanoneFILEisspecified)2.命令语法Usage:wc[OPTION]...[FILE]...or:wc[OPTION]...--files0-from=F3.参数
- 微服务(一)
山猪打不过家猪
C#.net
文章目录项目地址一、微服务1.1分析User的DomianVerb和Nouns二、运行docker和k8s2.1Docker1.编写dockerfile2.创建dockerimage3.运行docker使用指定端口4.查看当前运行的镜像5.停止当前所有运行的docker6.删除不用的dockerimages7.将本地的image上传到hub里2.2K8S1.创建k8s的部署2.创建node服务3.
- 【window批处理文件快速入门学习--这份文档就够了】
少年近视
批处理adb学习batch
一、简介1.1什么是批处理文件?批处理文件(BatchFile)是一种包含一系列DOS命令的文本文件,通常用于自动化重复性任务。文件的扩展名为.bat或.cmd,当在命令提示符下运行时,操作系统会按顺序执行文件中的命令。批处理文件的创建和使用为用户提供了高效的命令行操作方式。示例:创建一个简单的批处理文件,文件名为example.bat,内容如下:@echooffecho这是一个简单的批处理文件。
- Java stream流的避坑指南
冰糖心158
2025Java面试系列java
在使用JavaStreamAPI时,虽然它提供了强大的功能来简化集合操作,但也存在一些常见的“坑”需要注意。以下是详细的避坑指南:1.Stream的不可重用性问题:Stream一旦被消费(如调用forEach、collect等终端操作),就不能再次使用。解决方案:如果需要多次操作同一个数据源,可以重新创建Stream,或者将Stream的结果保存到集合中。Listnumbers=Arrays.as
- PEX: Python Executable魔力工具箱
史艾岭
PEX:PythonExecutable魔力工具箱pexAtoolforgenerating.pex(PythonEXecutable)files,lockfilesandvenvs.项目地址:https://gitcode.com/gh_mirrors/pe/pex项目基础介绍及主要编程语言PEX(PythonEXecutable)是Pantsbuild团队维护的一个强大开源项目,致力于简化Py
- 16进制编辑器 linux,Tweak - Linux下的16进制编辑器
Melo的健身课堂
16进制编辑器linux
tweak是可以在命令行方式下使用的16进制编辑器,在UbuntuLinux下可以用apt-getinstalltweak安装,用man可以看使用方法。命令格tweak是可以在命令行方式下使用的16进制编辑器,在UbuntuLinux下可以用apt-getinstalltweak安装,用man可以看使用方法。命令格式:tweak[‐l|‐f][‐e][‐wwidth][‐ooffset]filen
- CTF学习笔记——[ACTF2020 新生赛]BackupFile
Obs_cure
网络安全
一、[ACTF2020新生赛]BackupFile1.题目2.解题步骤看了一眼源码什么都没有。难道要暴力扫目录?先试试flag.php阿这还真有…但是还是什么都没有显示。再试试index.php的备份呢?备份有点东西。审计一下发现是弱类型。这段源码的大意就是输入一个key变量,如果key=str(123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3),那么打印fl
- 如何快速在linux服务器部署java运行环境(JDK+TomCat+Redis+Mysql+Nginx)
Noobwali
javatomcatlinux
一.jdk和Tomcat1.jdk安装tar-zxv-fjdk-8u231-linux-x64.tar.gz2.配置环境变量vim/etc/profileJAVA_HOME=/java_source/jdk1.8.0_231(这里填写你的路径,后面不变)PATH=JAVAHOME/bin:JAVA_HOME/bin:JAVAHOME/bin:PATHCLASSPATH=JAVAHOME/jre/l
- mysql的单表数据导入到hive数据库中
熏陶
数据库mysqlhive
1、将mysql的数据导出借助dbeaver工具,将单表数据table1格式导出为csv文件2、将csv的后缀名手动改为txt后缀,为了让每行的的字段是以,分隔3、将得到的txt文件上传到hdfs文件系统中4、目标机创建和table1一样的表结构的表,创建过程中要加上这几句ROWFORMATDELIMITEDFIELDSTERMINATEDBY','STOREDASTEXTFILE;如:CREAT
- Sqoop数据导出 第3关:Hive数据导出至MySQL中
是草莓熊吖
sqoopEducoderhivehadoop数据仓库sqoop
为了完成本关任务,你需要掌握:Hive数据导出至MySQL中。Hive数据导入MySQL中MySQL建表因为之前已经创建过数据库了,我们直接使用之前的数据库hdfsdb,在数据库中建表project,表结构如下:名类状态pro_noint主键,序号pro_namevarchar(20)课程名pro_teachervarchar(20)课程老师#首先进入MySQLmysql-uroot-p12312
- spark sql的练习题
a大数据yyds
sparkspark
1、使用StructuredStreaming读取Socket数据,把单词和单词的反转组成json格式写入到当前目录中的file文件夹中2、请使用StructuredStreaming读取student_info文件夹写的csv文件,2.1、统计出文件中的男女生各有多少人2.2、统计出姓“王”男生和女生的各有多少人3、请使用StructuredStreaming读取department_info文
- 软件越跑越慢的原因分析
七灵微
基本理论java开发语言
如果是qt软件,可以用QtCreatorProfiler作性能监控如果是通过web请求,可以用JMeter监控。软件运行过程中逐渐变慢的现象,通常是因为系统资源(如CPU、内存、磁盘I/O等)逐渐被消耗或软件中存在性能瓶颈。这个问题可以由多种因素引起,以下是一些常见的原因及可能的解决方法:内存泄漏原因:内存泄漏是指程序分配了内存后没有正确释放,导致内存被消耗掉,系统逐渐变得慢。随着时间推移,未释放
- TypeScript and Serverless Memory Issue
magic_dreamer
SummaryScriptsserverlessjavascriptwebpackViewUI
TypeScriptandServerlessMemoryIssueChangethefiletoaddthefollowcodesatthetop/opt/node/lib/node_modules/serverless/bin/serverless#!/usr/bin/envnode--max-old-space-size=3000--trace-gc-verboseJavaScripthea
- ollama部署及实践记录,虚拟环境,pycharm等
PyAIGCMaster
我买了个服务器pycharmlinuxide
我的环境:ubutu24.050.相关命令kt@kt4028:~/myproject/ollama-linux$ollama--helpLargelanguagemodelrunnerUsage:ollama[flags]ollama[command]AvailableCommands:serveStartollamacreateCreateamodelfromaModelfileshowShow
- 深度解析 Git 的使用:版本控制的核心工具
qq_39279448
git
1.Git的基本概念1.1什么是版本控制?版本控制系统(VersionControlSystem,VCS)是一种用于记录文件内容变更历史的工具。多人开发者可以在不同的时间编辑同一个文件,而不必担心覆盖或丢失他人的修改。Git作为一种分布式版本控制系统,允许开发者在本地操作代码的同时,确保所有更改都可以被追踪和协同。1.2分布式与集中式的差异集中式版本控制(例如SVN):所有代码和版本信息都存储在中
- 向awk传递外部参数的五种方法(直接传递;-v选项;ARGV数值;间接引用;ENVIRON变量)
jcsx
基础运维知识库linux自动化运维
向awk传递外部参数的五种方法(直接传递;-v选项;ARGV数值;间接引用;ENVIRON变量)向awk传递外部参数的方法有四:#(一)直接传递参数写在输入文本之前,脚本之后awk'Script'var=valueinputfile#单个参数awk-fscriptfilevar1=value1var2=value2inputfile#多个参数缺点:命令行参数的限制是他们在BEGIN过程中是不可用的
- 【C语言】预处理详解
星霜旅人
c语言
他们想要逃避工作的压迫,却又被功绩社会深植的价值观绑架。预定义符号1.C语言设置了⼀些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的。1__FILE__//进⾏编译的源⽂件2__LINE__//⽂件当前的⾏号3__DATE__//⽂件被编译的⽇期4__TIME__//⽂件被编译的时间5__STDC__//如果编译器遵循ANSIC,其值为1,否则未定义#includeintmain(){
- Progressive learning
yore0531
深度学习人工智能计算机视觉
learnfromRestormer.Restormer:EfficientTransformerforHigh-ResolutionImageRestoration|IEEEConferencePublication|IEEEXploreProgressivelearning在小的croppatches上训练Transformer模型可能无法对全局图像统计进行编码,从而在测试时对全分辨率图像的效
- Jetty切Tomcat部署应用之根路径/总是跳转index页面
upcdxlq
tomcatjava服务器
问题描述项目之前在Jetty下运行的,http://ip:port/context/原本是进入到Controller的@RequestMappin(“/”)方法的,但部署到Tomcat下,总是跳转到index.jsp问题分析1、访问应用的其他路径都正常,这个请求压根没有得到DispatchServlet处理,默认返回index.jsp,应该是tomcat配置问题2、那是不是应用的web.xml里配
- 电视直播资源
点滴学习之路
电视直播资源
亲测,用了下不错474*file*http://121.31.30.90:8085/ysten-business/live/zhejiangstv/1.m3u8474*title*浙江卫视474*played*0475*file*http://36526.hlsplay.aodianyun.com/guangdianyun_36526/tv_channel_518.m3u8475*title*浙江
- Carla 启动报错:Exception thrown: bind: Address already in use Signal 11 caught.
睡不醒的小泽
服务器运维
./CarlaUE4.sh-prefernvidia4.24.3-0+++UE4+Release-4.245180Disablingcoredumps.LowLevelFatalError[File:Unknown][Line:102]Exceptionthrown:bind:AddressalreadyinuseSignal11caught.MallocSize=65538LargeMemory
- 奥比中光Geminipro相机使用
一傲
python开发语言
相机使用入门,使用python获取深度图和颜色图并显示。#安装依赖importcv2importnumpyasnpfrommatplotlibimportpyplotasplt#奥比中光OrbbecPythonSDKfromObTypesimport*fromPropertyimport*importPipelineimportStreamProfilefromErrorimportObExcep
- mac 电脑上安装adb命令
宏基骑士
小知识点macosadb
在Mac下配置androidadb命令环境,配置方式如下:1、下载并安装IDE(androidstudio)AndroidStudio官网下载链接详细的安装连接请参考Mac安装Androidstudio2、配置环境在安装完成之后,将android的adb工具所在目录加入环境变量里面。方法如下操作:(1)修改.bash_profile文件中的内容在终端中输入vim~/.bash_profile,打开
- libOnvif通过组播不能发现相机
容沁风
onvif组播libonvif大华
使用libOnvif库OnvifDiscoveryClient类,autodiscovery=newOnvifDiscoveryClient(QUrl(“soap.udp://239.255.255.250:3702”),cb.Build());会有错误:endoffileornoinput:messagetransferinterruptedortimedout(30secmaxrecvdela
- JS中window.dispatchEvent的原理和使用初识
匹马夕阳
javascript前端开发语言
window.dispatchEvent是JavaScript中用于触发事件的一个方法,它允许开发者在DOM(文档对象模型)中触发特定的事件。这对实现自定义事件或者将事件传递给其他组件或部分的应用非常有用。文章目录使用场景具体代码示例步骤1:创建自定义事件步骤2:触发事件步骤3:监听事件步骤4:集成到页面解释使用场景示例:跨组件通信ModuleA:触发事件ModuleB:监听事件优势注意事项总结使
- 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