- React 最新版本(hooks写法)
抬头第一眼,是天
Reactreact.jsjavascript前端
React目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录React目录前言一、指令jsx语法:需要注意的是:react的类名class变成了className,事件从onClick,因为class是react的内部关键字动态数据useState()相当于Vue3的ref(),reactive()条件渲染列
- 手写一个虚拟DOM理解写jsx到底写了什么。
lichenyang453
前端javascriptreact.js
首先我们写的jsx语法,是用声明式的方式把React中的React.createElement简化,也就是一种语法糖。用代码举例子。1.简单例子constelement=(我我我console.log('点击')}>点我)这是声明式,我们直接声明一个类型div的React元素,属性有style,children,children包含一个字符串和一个类型为按钮,属性有onClick,children
- React JSX属性传递规则(事件处理函数名必须用驼峰式;内联样式必须是JavaScript对象,键名用驼峰命名;className、htmlFor;自定义属性要以data-开头、动态属性绑定)
Dontla
reactjavascriptreact.js前端
文章目录**1.驼峰式命名法(CamelCase)****2.属性值的类型**-**字符串属性**:直接使用双引号包裹的字符串。-**表达式属性**:使用`{}`包裹JavaScript表达式,动态计算属性值。-**布尔属性**:如果属性值为`true`,可以直接省略值;如果为`false`,则不传递该属性。**3.事件处理**-**规则**:事件处理函数的命名必须使用驼峰式(如`onClick`
- 面试版-前端开发核心知识
一、DOM操作与事件处理:用户交互的基石1.1原生点击事件的三种绑定方式前端与用户的交互始于事件,而点击事件是最基础的交互方式。原生JavaScript绑定点击事件主要有以下三种方式:(1)HTML内联绑定(不推荐)直接在HTML标签中通过onclick属性定义事件逻辑:点击我functionhandleClick(){console.log('内联事件触发');}缺点:HTML与JS逻辑耦合,无
- android led 框架,详解Android应用层制作LED指示灯
详解Android应用层制作LED指示灯在Java应用层修改LED指示灯的颜色,这个花了我半天时间,才实现该功能!publicclassLEDActivityextendsActivityimplementsView.OnClickListener{privatestaticfinalStringTAG="LED";ButtonmLedTest;intmLedStatus=0;privatefin
- js获取文件夹中的所有文件和子文件夹
枫叶&情缘
JavaScriptjq前端javascript前端开发语言
获取文件夹中的所有文件和子文件夹打开文件夹/***获取按钮元素并添加点击事件处理函数*/varbtn=document.querySelector('button');btn.onclick=asyncfunction(){//显示文件选择器constdirectoryHandle=awaitwindow.showDirectoryPicker();//处理目录awaitproecssHandle
- React用户交互事件
在React中处理用户交互事件(如点击、输入、提交等)的方式与原生JavaScript类似,但有一些语法差异和最佳实践。以下是常见交互事件的处理方法及代码示例:一、基本事件处理(点击、输入等)1.点击事件(onClick)importReact,{useState}from'react';constButtonExample=()=>{const[count,setCount]=useState(
- 抖音小程序开发:ttml和传统html的区别
大磕学家ZYX
JS小程序开发学习html前端javascript
1传统Web中HTML的角色HyperTextMarkupLanguage:用来描述页面结构——标题、段落、图片、表单……只负责“放什么元素、排在什么层级”,真正的行为靠JS,视觉靠CSS。HelloWeb+0//纯JS手动取DOM/改文本letn=0;document.getElementById('incBtn').onclick=()=>{n++;document.getElementByI
- [HarmonyOS Next示例代码] 鸿蒙--基础组件使用
xiaohai_09
harmonyos鸿蒙
组件集合介绍本示例为ArkUI中组件、通用、动画、全局方法的集合。效果预览使用说明:1.点击组件、通用、动画、全局方法四个按钮或左右滑动切换不同视图。2.点击导航(如onClick点击事件、触摸事件等),跳转至详情页面。工程目录├──entry/src/main/ets//代码区│├──application││└──MyAbilityStage.ets│├──common││├──Attribu
- JS入门——事件与事件绑定
MX_9359
javascript前端开发语言
JS入门——事件与事件绑定一、事件的分类二、事件的绑定方式实现代码:JS事件绑定functiononc1(){alert("事件绑定1");}document.getElementById("bu2").onclick=function(){alert("事件绑定2");}
- Qt Quick 与 QML(三)qml中的基础控件
做一个坚强的女汉子
qmlQTqtqml
一、基础控件控件名称功能描述示例代码Rectangle基础绘图控件,创建矩形区域Rectangle{width:100;height:100color:"red";radius:5}Text/Label文本显示控件Text{text:"HelloWorld";font.pixelSize:24}Button交互按钮控件Button{text:"提交";onClicked:co
- JavaScript 观察者设计模式
高热度网
JavaScript学习玩转前端JavaScript网站开发javascript观察者模式开发语言
观察者模式:观察者模式(Observermode)指的是函数自动观察数据对象,一旦对象有变化,函数就会自动执行。而js中最常见的观察者模式就是事件触发机制。ES5/ES6实现观察者模式(自定义事件)-简书先搭架子要有一个对象,存储着它自己的触发函数。而且这个对象的触发函数可能有很多种,比如一个onclick可能触发多个事件,那么handler的属性应该是一个数组,每个数组的值都是一个函数。hand
- React动态渲染:如何用map循环渲染一个列表(List)
程序员阿超的博客
Reactreact.js前端前端框架
React动态渲染:如何用map循环渲染一个列表(List)?系列回顾:在上一篇中,我们学习了如何通过onClick等事件处理,让React应用响应用户的操作。现在我们的组件已经能“听懂话”了。但是,目前为止我们展示的内容都是写死的。如果我们要展示一个从服务器获取的朋友列表,或者一个包含100件商品的清单,总不能在代码里一个一个地手写标签吧?欢迎来到React学习的第五站!今天,我们要学习一个非常
- HTML前端开发:JavaScript 常用事件详解
一只小风华~
HTMLhtmljavascript前端
作为前端开发的核心,JavaScript事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例:1.onclick-点击事件当元素被单击时触发(左键点击)button.onclick=function(){alert("按钮被点击了!");};场景:按钮提交、菜单展开、弹窗触发2.onmouseover-鼠标悬停事件当鼠标进入元素区域时触发(包括子元素)div.onmouseover=fu
- python遍历网页节点并记录xpath
飞鸟真人
python经验pythonlxmlxpath
需求:提取页中所有的链接,包括静态与动态;方案:1)加载网页后,使用lxml,与xpath机制提取所有的属性的链接;2)selenium可以检查加载网页过程中,脚本自动访问的地址;3)etree遍历html中所有的节点,如果有onclick属性,并且href未检测到过,则需要执行一下记录下id或者xpath,使用selenium点击并获取点击后的当前路径;测试发现遍历时候,etree的遍历速度比s
- Android 视图系统入门指南
1.View:界面的最小单位本质:屏幕上的一个矩形区域,能显示内容或接收触摸。比喻:就像乐高积木,是组成界面的最小单位。常见子类:TextView(文字积木)、Button(按钮积木)、ImageView(图片积木)。关键方法:setText()、setBackgroundColor()、setOnClickListener()。**********************************
- js鼠标事件大全
小二爱编程·
javascript计算机外设开发语言
一、鼠标相关事件(MouseEvents)事件名描述支持浏览器(HTML版本)onClick鼠标单击对象时触发IE3,N2,O3onDblClick鼠标双击对象时触发IE4,N4,OonMouseDown鼠标按键按下时触发IE4,N4,OonMouseUp鼠标按键释放时触发IE4,N4,OonMouseOver鼠标移入对象范围时触发IE3,N2,O3onMouseMove鼠标在对象范围内移动时触发
- ...because it violates the following Content Security Policy...
诸葛韩信
webjavascripthtml
在项目中,移动端安卓手机点击登录页面的图片,它居然放大全屏了,后来是因为没有在img标签中加上js方法returnfalse阻挡(当然用css的背景图方式也是可以)。解决方式我居然直接用了js的onclick方法onclick="returnfalse;"问题就来了,导致报错。报错信息如下:Refusedtoexecuteinlineeventhandlerbecauseitviolatesthe
- React事件和原生事件的区别
^西西歪
react.jsjavascript前端
事件绑定方式React使用合成事件(SyntheticEvent)系统,通过驼峰命名法(如onClick)在JSX中直接绑定事件。原生事件则通过addEventListener或HTML属性(如onclick)绑定。//React事件绑定Click//原生事件绑定document.getElementById("button").addEventListener("click",handleCli
- HTML常见事件详解:从入门到实战应用
浪浪山小白兔
html前端
前言在Web开发中,事件是用户与网页交互的核心机制。HTML事件让我们能够响应用户的各种操作,如点击、鼠标移动、键盘输入等。掌握HTML事件是前端开发的基础技能之一,本文将深入探讨HTML中的常见事件类型及其实际应用。HTML事件概览总结HTML事件可以分为以下几大类,每类都有其特定的应用场景和使用方法:核心事件分类鼠标事件:onclick、ondblclick、onmousedown、onmou
- Android面试问答题总结
qq_孤小狼
android面试
1.什么是Activity?四大组件之一,一般的,一个用户交互界面对应一个activitysetContentView(),//要显示的布局button.setOnclickLinstener{},activity是Context的子类,同时实现了window.callback和keyevent.callback,可以处理与窗体用户交互的事件.我开发常用的的有FragmentActivitiy,L
- React的合成事件(SyntheticEventt)
TE-茶叶蛋
面试复习系列reactreact.js前端javascript
文章目录前言前言React的合成事件(SyntheticEvent)是React为了统一不同浏览器的事件处理行为而封装的一套跨浏览器事件系统。它与原生事件的主要区别如下:1.事件绑定方式•合成事件:使用驼峰命名法绑定事件(如onClick),并通过JSX直接传递给组件。点击•原生事件:通过addEventListener或HTML属性(小写命名,如onclick)绑定。button.addEven
- el-dialog鼠标在遮罩层松开会意外关闭,教程图文并茂
Zww0891
VueCSS组件BUG计算机外设vue.jsjavascript
报错效果如下在遮罩层处松开鼠标会导致模态框意外关闭,体验感极差解决方法工作流程点击遮罩层:用户在对话框遮罩层上点击触发before-close事件:由于closeOnClickModal默认为true,ElementUI检测到点击遮罩层的行为在实际关闭对话框前,ElementUI调用before-close钩子(在本例中是beforeDialogClose方法)收集鼠标行为信息:在整个过程中,通过
- 鸿蒙 Core File Kit(文件基础服务)之简单使用文件
bestadc
HarmonyOSharmonyos
查看常用的沙箱目录应用沙箱文件访问关系图应用文件目录结构图查看常用的沙箱目录@Entry@ComponentstructIndex{build(){Button('查看常用的沙箱目录').onClick(_=>{letctx=getContext()//UI下只能使用这个方法,不能this.contextconsole.log('--应用缓存文件保存目录:',ctx.cacheDir)//--应用
- Vue--键盘修饰符
码码姑娘
小白的前端开发学习之路css3javascripthtml
键盘修饰符1.概念与作用:>相当于是event.keycode来绑定按键事件>onclickonscrollondblclick都是鼠标事件....>keyupkeydownkeypress(keydown+keyup)>键盘修饰符是给上述三类key做绑定用的。2.定义键盘修饰符://键盘修饰符定义定义回车并且去f2别名13对应的是enter回车键Vue.config.keyCodes.f2=13
- Android studio 实现弹出表单编辑界面
努力,别失业
androidstudiojava前端
方法1:使用AlertDialog(简单表单)适用于简单的表单场景。1.创建表单布局(XML)在res/layout中新建dialog_form.xml:2.在代码中显示对话框在Activity或Fragment中://点击按钮触发弹窗findViewById(R.id.btn_show_dialog).setOnClickListener(v->showFormDialog());private
- Android学习之响应式编程
molong931
Android开发android学习
本篇基于DeepSeek搜索结果修改。一、响应式编程基础认知1.1为什么需要响应式编程?在传统的Android开发中,我们经常会遇到以下痛点://传统方式处理数据变化button.setOnClickListener{//触发网络请求fetchDataFromNetwork{result->//更新UItextView.text=result//如果数据依赖其他状态,需要手动管理if(result
- Vue3中的模板指令——DOM事件监听指令v-on
南腔北调-pilmar
#Web前端开发基础vue.jsjavascript前端
4.6.3事件监听指令v-on(@)可以使用v-on指令(简写为@)来监听DOM事件,并在事件触发时执行对应的JavaScript脚本,即handler事件处理函数。用法:v-on:click="handler"或@click="handler"。事件处理器(handler)的值可以是:内联事件处理器:事件被触发时执行的内联JavaScript语句(与onclick类似)。方法事件处理器:一个指向
- 编程中如何与AI交互-结构化输入和理解确认机制
stevenzqzq
人工智能交互
一结构化输入是什么结构化输入的定义:结构化输入是指以清晰、分层、有逻辑的格式向AI输入信息,使其更容易解析内容、抓住重点,并准确回答问题。举个例子(编程场景):非结构化输入(容易出错):我有个按钮点击不生效,是怎么回事?结构化输入(AI能更好理解):场景:在Android中使用DataBinding实现点击事件问题:点击按钮没有触发onClick方法代码片段:viewModel.onClick()
- 日期时间选择器 el-date-picker 设置开始时间和结束时间
cb++
javascript开发语言ecmascript
先对组件进行渲染pickerOptions:{shortcuts:[{text:"最近一周",onClick(picker){constend=newDate();conststart=newDate();start.setTime(start.getTime()-3600*1000*24*7);picker.$emit("pick",[start,end]);},},{text:"最近一个月",
- 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