- python3学习笔记:执行精确的小数计算
潼潼夏
问题我们需要对小数进行精确计算,不希望因为浮点数天生的误差而带来影响解决方案使用decimal模块,牺牲一些性能,得到更高的精度。示例如下:fromdecimalimportDecimala=4.2b=2.1c=a+bprint(c)#c=6.300000000000001a2=Decimal('4.2')b2=Decimal('2.1')c2=a2+b2print(c2)#c2=6.3Decim
- 【python3学习笔记】之list的相关操作
_young_for_u_
1、定义list:列表名=[列表内容]列表名=[关于A的表达式forAinB其它判断],最终的list根据A的表达式计算并逐个列出list=[iforiinrange(10)ifi%2==0]#两种方式等价,但列表解析式执行效率更高list1=[]foriinrange(10):ifi%2==0:list1.append(i)2、增加list元素:list.append(obj),小括号内的内容将
- pythonurllib模块-Python3学习笔记(urllib模块的使用)
weixin_37988176
1.urlliburllib.request.urlopen(url,data=None,[timeout,]*,cafile=None,capath=None,cadefault=False,context=None)-url:需要打开的网址-data:Post提交的数据-timeout:设置网站的访问超时时间直接用urllib.request模块的urlopen()获取页面,page的数据格式
- 【python3学习笔记】之字符串格式化符号含义及转义字符含义
_young_for_u_
字符串格式化符号含义符号说明%c格式化字符及其ASCII码%s格式化字符串%d格式化整数%o格式化无符号八进制数%x格式化无符号十六进制数%X格式化无符号十六进制数(大写)%f格式化浮点数字,可指定小数点后的精度%e用科学计数法格式化浮点数%E作用同%e,用科学计数法格式化浮点数%g根据值的大小决定使用%f或%e%G作用同%g,根据值的大小决定使用%f或者%E格式化操作符辅助命令符号说明m.nm是
- Python3学习笔记29——Socket(网络编程)
Darin2017
python基础Socket网络编程
Socket是网络编程的一个抽象概念。通常我们用一个Socket表示”打开了一个网络链接”,而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协议类型即可。客户端大多数连接都是可靠的TCP连接。创建TCP连接时,主动发起连接的叫客户端,被动响应连接的叫服务器。举个例子,当我们在浏览器中访问新浪时,我们自己的计算机就是客户端,浏览器会主动向新浪的服务器发起连接。如果一切顺利,新浪的服
- Python3学习笔记之-模块(第一篇)
是小先生
python学习笔记python
Python3学习笔记之-模块(第一篇)文章目录目录Python3学习笔记之-模块(第一篇)一、使用模块二、作用域三、安装第三方模块四、模块搜索路径一、使用模块python本身内置了许多模块,安装就能使用,我们编写一个自己的模块试一试:#!/usr/bin/envpython3#-*-coding:utf-8-*-'mymodule'__author__='myname'importsysdeft
- 「Python3学习笔记」读书笔记--float类型
Lovemma
本文为「Python3学习笔记」一书的读书总结。在Python中float类型默认存储双精度浮点数(也就是其他语言中的double),可一表达16到17位浮点数。>>>1/30.3333333333333333>>>0.12345678901234567890.12345678901234568从实现方式上来看,浮点数是以二进制的方式来存储十进制数的近似值。这就可能导致执行的结果与预期不符合,造成
- 「Python3学习笔记」读书笔记—字符串
Lovemma
字符串字面量以成对的单引号(`)、双引号(”),或可跨行的三引号(”””)语法构成,自动合并相邻的字面量。字符串支持转义、八进制、十六进制,或Unicode格式字符。使用单引号还是双引号,并没有什么特殊限制。如果文本内的引用文字使用双引号,那么外面用单引号可避免转义,更易阅读。通常情况下,建议遵循多数编程语言惯例,使用双引号标示。Python3中字符串存储的是Unicode文本,是不可变序列类型。
- Python3学习笔记——第一章:基础入门
福旺旺
Pythonpython
Python3有段时间没摸Python了,浏览了一下菜鸟教程,巩固一下基础吧。Python3学习笔记——第一章:基础入门文章目录Python3一、Python3简介二、Python的安装三、查看Python版本四、第一个Python3程序一、Python3简介讲几个对编程有用的点Python是一种高级编程语言,它具有以下特点:易学易用:Python是开源的,其具有简洁的语法,清晰的语言结构,和相对
- [Python3学习笔记-基础语法] Python3 基础语法
Python小菜鸡
本篇文章详细介绍Python3的基础语法,主要包括编码、标识符、Python保留字、注释、行缩进、多行语句、Number类型、字符串、空行、print打印等。这些是Python最基础的东西,掌握好了才能更好的学习后续的内容。有兴趣共同结伴学习Python的朋友,点击下面的图标加群:编码默认情况下,Python3源码文件以UTF-8编码,所有字符串都是unicode字符串。当然你也可以为源码文件指定
- python3学习笔记-数据结构
谢懵逼
列表和循环列表列表就是一种有序的列表有序的列表随机访问线性访问通过索引访问创建列表普通列表以作坊括号([)开头打开列表,然后写要放入列表的东西,以逗号隔开,以右方括号(])表明列表结束,然后赋给一个变量eghairs=['brown','blond','red']eyse=['brown','blue','green']weights=[1,2,3,4]二维列表在列表中包含列表eg[[1,2,3]
- VIM YouCompleteMe(ycm) 对于Python3第三方库的自动补全【部分解决】
太阳神LoveU
高手的点拨Python项目实战编程语言学习笔记pythonvimmac
VIMYouCompleteMe(ycm)对于Python3第三方库的自动补全【部分解决】Python3学习笔记问题:VIM用YouCompleteMe(ycm)自动补全插件时,只能支持Python3的标准库的自动补全,而不能自动补全第三方库的内容。环境:Mac+VIM8.0+vundle+ycm+python3解决:尝试对Python3第三方库的自动补全进行配置。1)在网上查阅了很多资料,至今未
- python3学习笔记------函数
爽爽ing
这周,我们学习了函数,现在就让我来总结一下知识点吧!def是函数名()函数封装的代码1:def是英文defind的缩写2:函数名称应该能够表达函数封装代码的功能,方便后续的调用3:函数名称的命名应该符合标识符的命名规则^可以由字母、下划线和数字组成^不能以数字开头^不能与关键字重名4:函数可以通过函数名()来调用接下来我们来举个例子吧!
- python3学习笔记第一章(tools工具的安装)
一个人看小丸子
python
python3学习笔记(一)Tools(代码编辑器管理)https://www.jetbrains.com/toolbox-app/download/download-thanks.html?platform=windows修改路径文件默认安装的路径为C盘下,大约200兆左右,这一步移动默认位置直接剪切JetBrains文件夹下的所有文件到D盘或者其他盘符原路径C:\Users\zzsoft\Ap
- Python3学习笔记:清晰理解协程
码途有道
线程和进程在了解协程之前,我们先简单了解一下进程与线程,并发与并行的概念。进程:是资源分配的独立单位。我们可以将其通俗的理解为电脑中运行的程序的实例,例如打开一个浏览器就是启动了一个浏览器进程,打开一个记事本就是启动一个记事本进程。线程:是操作系统调度的基本执行单位。当我们启动了一个浏览器时(即启动了一个浏览器进程),我们可能会做播放视频、下载文件等操作。在浏览器进程中,我们执行的这些操作,我们可
- python3学习笔记--函数
谢懵逼
函数(function)定义函数:def函数名+":"参数多个参数(使用*arg)defprint_two(*args):arg1,arg2=args多个参数(函数名中定义)defprint_two_again(arg1,arg2):单个参数defprint_one(arg1):不传参defprint_none():定义函数的时候应检查调用函数的时候是否使用了函数名函数名是都紧接着(字符括号内是否
- python3学习笔记-变量、数据类型
谢懵逼
变量和字符变量要以字母开头使用round函数可以进行四舍五入字符串和文本‘’和”“都可以用来创建字符,不过一般单引号会用来创建简短的字符‘字符/字符串’+*+‘数字’->复制‘字符/字符串’几个‘数字’格式化字符串{变量}+字符串以f开头:将变量放到{}之中数据类型数据类型种类(6种)Number(数字)True=1False=0数值的除法(/)总是返回一个浮点数,要获取整数使//操作符在混合计算
- Python3学习笔记——列表(二)
equalsYU
对列表元素的操作1、增加元素1.1append()方法append()方法用于将元素添加到列表末尾。countries=['China','Japan','USA']countries.append('Germany')print(countries)输出为:['China','Japan','USA','Germany']1.2insert()方法insert()方法可以在列表的任意位置插入元素
- python3学习笔记1--TypeError: 'dict' object is not callable的解决
x_q_q
python对象
dict()是python的一个函数,但我又将dict自定义为一个python字典,在之后想调用dict()函数是会报出“TypeError:'dict'objectisnotcallable”的错误,只需将之前自定义的变量delete掉即可。del(dict)。
- Python3学习笔记20——collections
Darin2017
python基础collections模块
collections是Python内建的一个集合模块,提供了许多有用的集合类。namedtuple我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成:p=(1,2)但是,看到(1,2)很难看出这个tuple是用来表示一个坐标的。定义一个class又小题大做了,这时,namedtuple就派上了用场:fromcollectionsimportnamedtuplePoint=na
- Python3学习笔记
python
标准数据类型Python3中有六个标准的数据类型:Number(数字)String(字符串)List(列表)Tuple(元组)Sets(集合)Dictionary(字典)Number(数字)Python3支持int、float、bool、complex(复数)。在Python3里,只有一种整数类型int,表示为长整型,没有python2中的Long。像大多数语言一样,数值类型的赋值和计算都是很直观
- 「Python3学习笔记」读书笔记—字节数组
Lovemma
生物都是由细胞构成的,但在我们普通人眼中,并不会将鸡、鸭、狗、鸟这些动物当作细胞看待,因为对待事物的角度决定了我们更关心生物的外在形状和行为,而不是它的组织构成。从计算机底层实现来说,所有的数据都是二进制字节序列。但为了更好地表达某个逻辑,计算机科学家们将数据抽象成不同的类型,犹如细胞和动物的关系。在编程语言中,对于字节序列,我们更关心的是它的存储和传输方式;而面向对象时,则着重于它的抽象属性。尽
- python3学习笔记
zzqsmile
久未温习,遂尽忘矣。从头学习python,泪奔!!!基础语法编码#-*-coding:utf-8-*-多行语句Python通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠(\)来实现多行语句,例如:#!/usr/bin/envpython3#-*-coding:utf-8-*-a=1+\1+\1print(a)#----------------------------输出结果3[Fini
- 廖雪峰Python3学习笔记-IO编程
相关函数
本文是笔者学习廖雪峰Python3教程的笔记,在此感谢廖老师的教程让我们这些初学者能够一步一步的进行下去.如果读者想学习完成的教程,请访问廖雪峰Python3教程,笔记如有侵权,请告知删除...读文件以读文件的方式打开文件的做法是使用Python内置的open()函数,参数为文件名和标识符标识符:r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。rb以二进制格式打开一个文件用于只读
- Python3学习笔记 2
TomQ
查看帮助交互环境中:help(函数名)定义defmy_fun():注:无return语句最终返回None。returnNone同return空函数:defnop():passpass:什么都不做,又如:ifa>b:pass参数类型检查:defmyfun(x):ifnotisinstance(x,(int,float)):raiseTypeError('badoperandtypeformyfun'
- python3学习笔记
爱吃甜粽子
python3学习笔记基础语法编码标识符保留字注释行与缩进同一行显示多条语句输入输出import与from...import结构迭代器变量变量的声明变量的赋值查询变量所指的对象类型删除对象标准数据类型数字(Number)数值运算数学函数三角函数数学常量随机数函数字符串(String)字符串转移符号、格式化、f-string、内建函数等列表(List)python列表函数&方法元组(Tuple)集合
- Python3学习笔记-18(私有方法)
笑笑是一个码农
PythonPython3Python
私有方法__private_method:两个下划线开头,声明该方法为私有方法,只能在类的内部调用,不能在类地外部调用。例:#定义类classMyClass:#定义私有方法def__sum(self,a,b):total=a+bprint('私有方法')returntotal#定义公有方法defadd(self,a,b):total=a+bprint('这是公有方法')returntotal#定义
- python3学习笔记之五——将json数据写入excel表
joey_2018_
python3
#student4.json[{"student_no":1001,"name":"James","score":10,"class":"A-1","rank":1},{"student_no":1002,"name":"Tome","score":91,"class":"A-1","rank":2},{"student_no":1003,"name":"Jane","score":100,"cl
- Python3学习笔记15-迭代器与生成器
weixin_33709590
生成器如果创建一个有很多元素的列表,但是只需要访问前几个元素,后面的元素占着的空间就白白浪费了在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。要创建一个generator,有很多种方法第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator:L=[x*x
- Python3学习笔记:清晰理解迭代器、生成器以及yield表达式
AlbertLii
Python
前言迭代器、生成器与装饰器是python中非常重要的三个特性。对于迭代器,很多初学者理解起来不是很困难,但是学习生成器与装饰器时可能就会感觉云里雾里。本篇文章会用简洁清晰的方式讲解迭代器与生成器,同时记录一下最近的学习成果。迭代器(Iterator)在介绍迭代器之前,我们需要先简单了解一个概念:可迭代对象(iterable)。可以直接作用于for循环的对象,称之为可迭代对象,例如list、tupl
- 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