- redis系列:01 数据类型及操作
杜杜的man
redis数据库缓存
redis的数据类型有哪些string,list,set,sorted_set,hash操作sting:setnamemaliaogetnameexistsnameexpirename5ttlnamedelnamesetexname10maliao设置key和过期时间setnxnamemaliao当key不存在时才添加list:lpushletteralpushletterblrangelette
- typescript 实现数组push unshift pop shift
学好大数据啊啊啊啊啊
typescriptjavascript前端
typearrPush=[...args:T,a:U]extends[...args:inferG]?G:nevertypenewArr=arrPushletg:newArr=[1,3,4,5]typearr=[1,2,3,4]type$unshift=[U,...T]typenewArr=$unshiftleta:newArr=[5,1,2,3,4]typea=[1,2,3]typearrPop
- 数组重构01
迃-幵
js重构javascript开发语言
数组重构01修改原数组push,pop,shift,unshift//push:在数组的最后添加元素(个数没有限制),并返回新数组的长度,数值类型,//重构pushletarrps=[1,2,3]//...arg:扩展运算符,用于将可迭代的对象或数组,或函数的剩余参数转换成一个逗号分隔的列表(数组)functionarrayPush(arr,...arg){//console.log(arg,'展
- WebSocket与消息推送
laiyuan999
目录一、Socket简介二、WebSocket简介与消息推送三、WebSocket客户端四、WebSocket服务器端五、测试运行六、小结与消息推送框架6.1、开源Java消息推送框架Pushlet6.2、开源DotNet消息推送框架SignalR七、代码下载7.1、Java实现的服务器端代码与客户端代码下载7.2、DotNet服务器端手动连接实现代码下载7.3、DotNet下使用SuperWeb
- JS pushlet XMLAdapter适配器用法案例解析
近日有人咨询PushletXMLAdapter适配器的问题,我特留意了一下到官方看了一下http://www.pushlets.com/,DevelopmentRoadmap中最后面说到了这个问题,AJAX(XMLHttpRequest)Support使用AJAX(XMLHttpRequest)的好处就是:cleanerandthinnerclient-sidelibnoissueswith"bu
- WebSocket简介与消息推送
目录一、Socket简介TCP/IP协议UDP协议二、WebSocket简介与消息推送三、WebSocket客户端四、WebSocket服务器端五、测试运行六、小结与消息推送框架6.1、开源Java消息推送框架Pushlet6.2、开源DotNet消息推送框架SignalR七、代码下载7.1、Java实现的服务器端代码与客户端代码下载7.2、DotNet服务器端手动连接实现代码下载7.3、DotN
- Servlet机制Pushlet原理及用法详解
Pushlet(一种comet架构的实现)是基于Servlet机制,数据从server端的Java对象直接推送(push)到客户端浏览器的(动态)HTML页面,而无需任何Javaapplet或者插件的帮助。在MyEclipse中创建工程。附件包含了从官方下载的Pushlet包已经本次的源码包,直接导入到开发工具即可。在创建的工程中增加pushlet.jar,log4j.jar。拷贝pushlet.
- springmvc hibernate easyui 整合 完整理解项目创建 内附demo实例
liuqinghuahuaqingliu
springmvchibernateeasyui整合demo下载整个demo地址如下:http://download.csdn.net/detail/liuqinghuahuaqingliu/7850485点击打开链接前台easyui后台hibernatespringmvc框架。demo主要设计功能点还有spring注解事物控制。pushlet、p6spy、日志监控、时间戳功能数据库mysql:d
- Flex web视频监控浏览端
布丰
应用实例(AppDemo)
之前有发过一个这样的博客,不过那个只有视频播放这一块用flash做的,其他部分都是用html,由于上头考虑到要同步这一块,也就是服务端要向页面推送消息,所以就换成全部用flash来做了,虽然现在的网页推送,像DWR和pushlet也是可以的,但是处理起来还是不好整,况且flash有Socket这块,通信就比较简单了。其实也没多少功能,最主要就是视频播放这块,还有布局这块,里面的功能都在之前的博客中
- pushlet 的优缺点以及应用范围
friendggz
applet浏览器servletserver服务器多线程
pushlet优点:1.浏览器内直接集成DHTML:服务器产生的数据可以立即发送到浏览器的页面内容中。HTML的所有布局均可应用。除非整个客户端用applet实现,因为Applet很难与web页面集成到一块。2.标准的HTTP接口和协议:messaging和RMI/CORBA均使用非标准的端口,可能很难通过防火墙,浏览器的安全也可能限制页面的自动刷新或者通过UDP接收数据。3.客户端的重量级别:J
- pushlet
hyw520110
java
基于pushlet的文件监控系统的研究与实现http://www.docin.com/p-121863047.htmliteyepushlet专栏http://www.iteye.com/blogs/tag/pushletpushlet基本流程http://blog.csdn.net/anghlq/article/details/5869233pushlet2.0.3源码分析(服务器端)http:
- Pushlet的Ajax-pushlet-client.js分析
pla37401
Programmingxmlhttprequestcallbackqueryxmlnullevents
Ajax-pushlet-client是pushlet的ajax客户端方式,对该JS进行分析后发现,它是采用了面向对象的javascript技术和充分利用XMLHttpRequest对象来实现的HTTP长连接,达到了服务器“推”技术。1、属性NV_P_FORMAT:'p_format=xml-strict',//数据格式,默认是严格严格XMLNV_P_MODE:'p_mode=pull',//pu
- pushlet 之 Pushlet使用手把手实例
OkidoGreen
Pushlet(一种comet架构的实现)是基于Servlet机制,数据从server端的Java对象直接推送(push)到客户端浏览器的(动态)HTML页面,而无需任何Javaapplet或者插件的帮助。在MyEclipse中创建工程。附件包含了从官方下载的Pushlet包已经本次的源码包,直接导入到开发工具即可。在创建的工程中增加pushlet.jar,log4j.jar。拷贝pushlet.
- pushlet 传递页面request参数
OkidoGreen
服务端推-Pushlet
原帖地址:http://blog.csdn.net/meikidd/article/details/7446778最近项目中有服务器端推送的需求,考察了一下,感觉pushlet比较适合我们的情况。用起来比较简单,网上资料也比较多(参考:开源框架Pushlet入门),就不多费笔墨了。最常见的用法如下:[java]viewplaincopypackagecom.ljq.test;importjava.
- 使用pushlet实现消息服务端推送至客户端
有一只柴犬
1、基础概念:Pushlet是一种comet实现:在Servlet机制下,数据从server端的Java对象直接推送(push)到(动态)HTML页面,而无需任何Javaapplet或者插件的帮助。2、一个简单的demo:1)导入所需要的jar包:pushlet.jar2)将配置文件pushlet.properties、sources.properties导入到src目录下pushlet.prop
- pushlet原理及例子
iteye_13411
Pushlet是一种comet实现:在Servlet机制下,数据从server端的Java对象直接推送(push)到(动态)HTML页面,而无需任何Javaapplet或者插件的帮助。它使server端可以周期性地更新client的web页面,这与传统的request/response方式相悖。浏览器client为兼容JavaScript1.4版本以上的浏览器(如InternetExplorer、
- Comet框架Plushlet使用中的问题
Jlins
java教程
Plushlet相关介绍不再扯淡我在将Plushlet集成到我的Web项目中时出现了[pushlet]problemretrievingXMLdata:这个状态栏提示错误经过对比和调试,发现一些问题总结下来提供参考第一:我对比了一下Plushlet提供的示例工程和在MyEclipse上创建的工程发现他们的web.xml头信息配置有所不同!Xml代码而创建的工程配置的是Xml代码很由于在这个配置文件
- pushlet 之Comet框架Plushlet使用中的问题 JS脚本之过
java小强
Java开源
对于某些人来说,这可能是个愚蠢的问题,但是由于这个问题让我纠结了大半天,我实在是受不了了,我一定要把它贴出来!补充一下,之前我说的修改JS来保证路径正确性的问题,至今没有人给予其他可能性的答复,而今天我到家以后在IE8上,仅仅增加了">标签后就不再出现问题了,想想可能是因为少了一个定位项目绝对路径的标签,我看了一下页面源码:、PL._init();PL.joinListen('/cuige/he'
- pushlet 之 Comet框架Plushlet使用中的问题
java小强
Java开源CometPlushletHTTP推技术webajax
Plushlet相关介绍不再扯淡我在将Plushlet集成到我的Web项目中时出现了[pushlet]problemretrievingXMLdata:这个状态栏提示错误经过对比和调试,发现一些问题总结下来提供参考第一:我对比了一下Plushlet提供的示例工程和在MyEclipse上创建的工程发现他们的web.xml头信息配置有所不同!而创建的工程配置的是很由于在这个配置文件只需要配置一个Ser
- java即时通信,推送技术详解
lhjtianji
JAVA学习javacometservlet服务器tomcatexception
服务器推送技术的基础思想是将浏览器主动查询信息改为服务器主动发送信息,服务器发送一批数据,浏览器显示消息,同时保证与服务器的连接,当服务器需要再一次的发送数据,浏览器显示数据并保持连接。comet基于HTTP长连接技术,无需安装插件。comet:一个概念,webpushpushlet:comet的一个实现。就是保持长连接的策略问题,有人用jquery写了相应的utilPushlet基于HTTP流,
- 技术之路要学习的东西
施小墨
学习资料
1.阿1巴巴的数据库连接池druid2.阿里巴巴Dubbo+Zookeeper注册中心3.阿里巴巴MyCat分库分表4.pushlets推送技术5.Linux操作系统下shell编程6.Redis缓存技术(session统一管理案例实现)7.引入接口联调过程8.支付宝和微信支付9.支付中的掉单处理10.处理常见超卖问题11.互联网金融项目的撮合业务系统12.互联网金融项目的满标审核、散标发布13.
- 原创:Comet简介及实际使用
yyri
目录Comet概述...2定义...2典型应用场景...3浏览器端兼容性...3可靠性...4可扩展性...4注意事项...4其他解决方案...5Comet与Ajax的区别...5NIO..7对比...7支持...9性能对比...9A项目中Comet的使用...10Dojo和Bayeux简介...11备注...11Multipart/x-mixed-replace示例...11Pushlet简介.
- websockt使用
那不是bug
WebSocket与消息推送转自https://www.cnblogs.com/best/archive/2016/09/12/5695570.html目录一、Socket简介二、WebSocket简介与消息推送三、WebSocket客户端四、WebSocket服务器端五、测试运行六、小结与消息推送框架6.1、开源Java消息推送框架Pushlet6.2、开源DotNet消息推送框架SignalR
- [转]网页聊天室的原理
shenlm203
编程相关
目前,无论是网页游戏、论坛博客、电子商场,随处都可以看到web聊天室。web聊天室的实现方法有多种,包括:基于ajax技术的实现,基于Comet(Pushlet)技术的实现,基于XMPP协议的实现,以及基于flash的XmlSocket和远程共享对象的实现。(1)基于ajax技术的实现。ajax(异步JavaScript和XML,Asynchronousjavascriptandxml),它的作用
- 使用DWR反转实现信息推送(一)
micky2046
DWR
除了利用Pushlet实现信息推送外,DWR反转同样可以实现推送。DWR的简单配置方法已经在以前的博客中写过。所以这里直接贴代码:新建web工程,这里命名为DwrEg,包结构如下:web.xml代码如下:dwr-invokeuk.ltd.getahead.dwr.DWRServletdebugtrueactiveReverseAjaxEnabledtrueclassesjava.lang.Obje
- DWR反转实现推送
松林小鼠
利用Pushlet实现信息推送外,DWR反转同样可以实现推送。DWR的简单配置方法已经在以前的博客中写过。所以这里直接贴代码:新建web工程,这里命名为DwrEg,包结构如下:web.xml代码如下:Xml代码dwr-invokeuk.ltd.getahead.dwr.DWRServletdebugtrueactiveReverseAjaxEnabledtrueclassesjava.lang.O
- 使用DWR反转实现信息推送
斗者_2013
消息推送
使用DWR反转实现信息推送博客分类:DWRDWR反转推送除了利用Pushlet实现信息推送外,DWR反转同样可以实现推送。DWR的简单配置方法已经在以前的博客中写过。所以这里直接贴代码:新建web工程,这里命名为DwrEg,包结构如下:web.xml代码如下:Xml代码dwr-invokeuk.ltd.getahead.dwr.DWRServletdebugtrueactiveReverseAja
- 使用DWR反转实现信息推送(一)
taking_wang
前台web_dwr
除了利用Pushlet实现信息推送外,DWR反转同样可以实现推送。DWR的简单配置方法已经在以前的博客中写过。所以这里直接贴代码:新建web工程,这里命名为DwrEg,包结构如下:web.xml代码如下:Xml代码dwr-invokeuk.ltd.getahead.dwr.DWRServletdebugtrueactiveReverseAjaxEnabledtrueclassesjava.lang
- 网页聊天室的原理
费里克斯
代码
目前,无论是网页游戏、论坛博客、电子商场,随处都可以看到web聊天室。web聊天室的实现方法有多种,包括:基于ajax技术的实现,基于Comet(Pushlet)技术的实现,基于XMPP协议的实现,以及基于flash的XmlSocket和远程共享对象的实现。(1)基于ajax技术的实现。ajax(异步JavaScript和XML,Asynchronousjavascriptandxml),它的作用
- 阿里技术2019最新学习思路:高性能 微服务 分布式 spring全家桶
Java架构俱乐部
架构
1.阿里巴巴的数据库连接池druid2.阿里巴巴Dubbo+Zookeeper注册中心3.阿里巴巴MyCat分库分表4.pushlets推送技术5.Linux操作系统下shell编程6.Redis缓存技术(session统一管理案例实现)7.引入接口联调过程8.支付宝和微信支付9.支付中的掉单处理10.处理常见超卖问题11.互联网金融项目的撮合业务系统12.互联网金融项目的满标审核、散标发布13.
- 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