- 1、.Net UI框架:Blazor Hybrid - .Net宣传系列文章
lzhdim
ui
BlazorHybrid是.NET6中引入的一个新特性,它允许开发者使用Blazor技术开发跨平台的桌面和移动应用程序。BlazorHybrid结合了BlazorWebAssembly和BlazorServer的优势,提供了一种在桌面和移动设备上运行Blazor应用的方法。BlazorHybrid的关键特性包括:跨平台应用:可以创建在Windows、macOS、Linux、iOS和Android上
- SocketException: 以一种访问权限不允许的方式做了一个访问套接字的尝试
为伴只为你
unity开发udp网络协议网络
UDPServer广播需要绑定本机ip地址才可以,否则调用SendTo会报错“SocketException:以一种访问权限不允许的方式做了一个访问套接字的尝试”,以前好像不需要绑定,这个更新有点坑更新ios的UDPServer的发送远端端口不能为0,否则回报该错误“SocketException:以一种访问权限不允许的方式做了一个访问套接字的尝试”,Android和windows则没有这个错误
- 自定义ios navigationItem 样式
宁静世界
自定义iosnavigationItem样式的需求在IOS非常常见,下面记录几种常用的设置方式普通方式image.png推荐的方式image.png
- 基于webrtc的多人连麦直播开源框架 Janus-gateway-iOS
天宇365
ios日常笔记iosobjective-c
低延时、地卡顿、高音画质是直播技术方向追求的方向,webrtc属于业内良心开源项目,绝大多数连麦直播技术基于此项目,连麦技术架构有Mesh、MCU、SFU三种技术架构。三种技术架构优缺点各异,大家可以自行查阅。但是基于目前的直播状况,现在最合适的,也是使用比较多的是SFU架构。但是SFU架构除了客户端的webrtc需要完成,更重要的服务器也需要搭建。如果你需要多人连麦直播 Janus-gatew
- 关于拼多多如何查优惠券返利的操作(微信机器人)
高省APP大九
2022年618快到了,淘宝京东拼多多各大平台都开始筹备了,拼多多的拼单购物深得大家的喜欢,拼多多618该怎么抢优惠券呢?1.首先需要下载【高省】APP,——邀请码:800000(安卓、iOS各大应用商店搜索高省)2.打开高省APP,找到拼多多专区3.可以看到海量优惠券及返佣商品,以及商品分区4.点开商品领取优惠券5.系统自动跳转至拼多多下单,下单后佣金到【高省】后台6.每个月25号提现已结算佣金
- 拦截器的两个错误
如果决定要走又何必挽留
axiosjavascript
1..导入axiosimportaxiosfrom'axios'2.创建axios实例对象importaxiosfrom"axios";constrequest=axios.create({baseURL:"xxx",//基本地址,对于非http和非https开头的请求都会在前面拼接上这个地址timeout:20000,//超时时间,超过这个时间没有收到服务器的回复就会报错,单位是毫秒method
- iOS 私有 API 问题
游城十代2dai
最近APP被拒,是因为如下私有API被拒0x00使用iOS-private-api-checker工具我没用明白,别人的db,太老了,自己制作db的时候两个问题一个是PrivateFrameworks和'文档'没有找到路径0x01APPScanner也没有成功0x02命令辅助使用strings命令,字符串问题其实可以直接工程搜索//Yesoul-iphone是app的mach-o文件....._U
- 移动端测试
渔jy
Android系统及应用androidlinux
三种移动端产品类型介绍移动端应用的测试其自身特点,和其他传统测试又有一些独特的测试方法与思路。移动端应用又可以进一步细分为三大类:WebApp指的是移动端的Web浏览器,其实和PC端的Web浏览器没有任何区别,只不过Web浏览器所依附的操作系统不再是Windows和Linux了,而是iOS和Android了。WebApp采用的技术主要是,传统的HTML、JavaScript、CSS等Web技术栈,
- ios 项目中设置左侧徽标
温正实
ioscocoamacos
////CategoryViewController.m//scxhgh////Createdbyxmkjsofton2024/7/16.//#import"CategoryViewController.h"#import"SideMenuViewController.h"//引入侧边栏控制器的头文件#import"NavigationBarUtils.h"@interfaceCategoryVi
- iOS——atomic、nonatomic、assign、_unsafe_unretain
糸师凛
ioscocoamacos
atomic和nonatomic在iOS开发中,当你定义一个属性时,编译器会自动为你生成一个带下划线的成员变量(实例变量)以及对应的getter和setter方法。如果你使用atomic修饰这个属性,那么编译器在生成setter和getter方法时,会在这些方法的内部实现中加入加锁操作。但是加锁只能保证getter和setter方法内部的线程安全,并不能保证对该属性的所有操作都是线程安全的。具体的
- 原生 iOS 引入 Flutter 报错 kernel_blob.bin 找不到
我码玄黄
Flutter入门IOS开发教你一招iosflutter
情况在一次原生iOS项目中引入Flutter的过程中,在模拟器中运行出现报错:未能打开文件“kernel_blob.bin”,因为它不存在。如下图:模拟器中一片黑原因&解决方案这个是因为Flutter的打包iOSframework命令中把debug排除了模拟器运行时应该引入debug文件夹的framework,引入release包就会报错修改命令为:flutterbuildios-framewor
- 掌财社:在html5中使用video进行全屏播放与自动播放的代码方法总结!
weixin_45378258
HTML
今天由于在之前小编在项目中遇到的有关于:“在html5中使用video进行全屏播放与自动播放的代码方法总结!”这方面的内容,所以今天就来和大家分享有关于这方面的相关内容!近期开始开发公司新版官网,首页顶部(header)是一个全屏播放的小视频,现简单总结如下:页面代码:其中php简单判断了一下是否是移动设备,移动设备不展示视频(如果移动端展示的话,需要解决iOS上无法自动播放的问题):ps:如果H
- 前端Axios搭配Vue(认清Axios,Axios结合Vue发出Ajax请求,返回JSON数据案例!简洁易懂。)
酸奶代码
前端vue.jsjavascriptjsonajax
一.什么是Axios1.axios是独立于vue的一个项目,不是Vue的一部分2.axios通常和Vue一起使用,实现Ajax操作3.Axios是一个基于promise的HTTP库axios官方文档二.引入Axios库文件1.可以直接引用2.可以下载Axios的js文件导入下载此js文件三.使用Axios配合Vue发出Ajax请求案例在Vue中使用Axios,向服务器发送Ajax请求,将获取的js
- 线段树(模板)
数学收藏家
线段树
#includeusingnamespacestd;#defineintlonglong#defineendl'\n'#defineIOSios::sync_with_stdio(false);cin.tie(0);cout.tie(0);#definemaxn100005intn,q;inta[maxn];structnode{intval,lazy;}s[maxn*4];voidpush_up
- HDU 1573X问题(扩展中国剩余定理)
数学收藏家
数据结构算法
ProblemDescription求在小于等于N的正整数中有多少个X满足:Xmoda[0]=b[0],Xmoda[1]=b[1],Xmoda[2]=b[2],…,Xmoda[i]=b[i],…(0usingnamespacestd;#defineintlonglong#defineendl'\n'#defineIOSios::sync_with_stdio(false);cin.tie(0);c
- axios取消请求
月伤59
前端javascript开发语言
1.使用CancelToken:classRequestHttp{service:AxiosInstance;publicconstructor(config:AxiosRequestConfig){//实例化axiosthis.service=axios.create(config);/***@description请求拦截器*客户端发送请求->[请求拦截器]->服务器*/this.servic
- iOS同时适配iPad横屏和iPhone竖屏
may_he
IOS开发ipadiphoneios屏幕方向
iPad横屏、iPhone竖屏1、启动页LaunchImage新建一个ImageSet,并且命名为LaunchImage(或者其他的名字),准备iPad横屏、iPhone竖屏的启动页,然后在Finder中打开LaunchImage.imageset找到Contents.json,然后修改内容{"images":[{"filename":"iPhone.png","idiom":"iphone","
- vue项目架构
影子信息
前端javascript
搭建项目框架,封装模块1.网络模块封装axios二次封装请求拦截器token是什么响应拦截器http协议2.动态权限菜单axios二次封装函数递归动态添加路由addRoutes刷新界面,菜单丢失问题,持久化存储技术实现点击菜单,不能找到路由组件问题,3.按钮资源权限根据登录用户角色获取能操作的资源列表,保存store自定义权限指令,封装有无操作该资源的权限v-permission=“[‘EditU
- Macaca 面向多端的自动化测试工具基于Python搭建详解 --Android、IOS搭建步骤
丢丢是一只喵
自动化测试自动化测试androidiospythonmacaca
Macaca是一套完整的自动化测试解决方案。同时支持多端Android、iOS、web、桌面浏览器运行,并且提供标准化的驱动层。多语言支持:支持node.js、Java、python。官方地址:https://macacajs.com/zh/这次选取Python作为开发语言主要是因为Python扩展能力强,便于开发。InstallMacacaonMac安装/更新node$node-v清理npm缓存
- 粉象生活宝妈如何挣钱
氧惠评测
粉象生活宝妈如何挣钱,和小编一起来看看吧。购物、看电影、点外卖、用氧惠APP!更优惠!氧惠(全网优惠上氧惠)——是与以往完全不同的抖客+淘客app!2022全新模式,我的直推也会放到你下面,送1:1超级补贴(邀请好友自购多少,你就推广得多少,非常厉害),欢迎各位团队长体验!也期待你的加入。氧惠邀请码888999,注册就帮你推广,一起做到百万团队!氧惠邀请码888999工具/原料苹果12ios15.
- iOS M1芯片Mac上Xcode模拟器报错解决
aven_kang
真机编译可以通过,模拟器失败,出现以下错误...,buildingforiOSSimulator,butlinkinginobjectfilebuiltforiOS,file'...'或者couldnotfindmodulefortarget'x86_64-apple-ios-simulator'解决方案一1.添加arm64到项目PEROJECT和TARGETS的ExcludedArchitect
- C++入门基础篇学习手记: 读取数量不定的输入数据
linhuanzhi
西加加C++数据求和
问题:编写C++程序,要求计算用户输入数据的总和,并打印显示。问题分析:用户输入数据时,由于我们事先不知道要对多少个数据进行求和计算,因此我们需要不断地读取数据直至没有新的输入为止。程序实现的源码如下:#include"iostream"usingnamespacestd;intmain(){doublesum=0,inValue=0;cout>inValue)sum+=inValue;cout<
- IOS 动画 动态变换背景色和大小
SkTj
1importUIKit23classViewController:UIViewController{45overridefuncviewDidLoad(){6super.viewDidLoad()7//Doanyadditionalsetupafterloadingtheview,typicallyfromanib.8letrect=CGRect(x:40,y:80,width:240,heig
- 「iOS学习」——Masonry学习
归辞...
ios学习cocoa
iOS学习前言Masonry的属性Masonry的使用基础APIAutoBoxing修饰语倍数中心点设置边距优先级使用总结前言暑假我们学习了使用CocoaPods引入第三方库,实现使用SVG图片。而Masonry作为一个轻量级的布局架构,在使用中可以节省很多时间。故进行简单学习。Masonry的属性UI设计是iOS开发的必须一环,直接影响了app的观感和使用体验。我们通常使用frame框架直接确定
- React(脚手架)——create-react-app撸api(七)生命周期
感觉不错哦
也快速过一下importReact,{Component}from'react'importaxiosfrom'axios'classNewextendsComponent{constructor(props){console.log('01构造函数')super(props);this.state={msg:''};}componentWillMount(){console.log('02组件将
- web前端 ios性能问题
zhenryx
前端
1.禁止用户拖拽标签-webkit-user-drag:none;2.禁止用户选择标签user-select:none;//-webkit-touch-callout:none;///*系统默认菜单被禁用*/-webkit-user-select:none;/*webkit浏览器*/-khtml-user-select:none;/*早期浏览器*/-moz-user-select:none;/*火
- 2019-07-16 Python接口测试实现获取登陆后的cookie访问下个接口
昨天今天下雨天1
coding:utf-8importrequestsurl="你的登陆接口"par={"mobile":"13225811329","passwd":"ws123456","from":"ios"}r=requests.post(url,data=par)s=requests.session()print(r.cookies)获取登录后的cookiecookies=r.cookiesurl1="你
- 深入浅出Flutter(一)
小时候很拽的样子
Flutter简介Flutter是Google推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过Dart语言开发App,一套代码同时运行在iOS和Android平台。Flutter提供了丰富的组件、接口,开发者可以很快地为Flutter添加Native扩展。由于背靠google,技术上支撑是足够的,且已经支持iOS、Android、Web、Windows、macOS、Linu
- android和ios混合开发工具,Flutter与已有iOS工程混合开发与脚本配置
乐居买房
运行一个原生的Flutter工程(也就是纯Flutter)非常简便,不过现在Flutter属于试水阶段,要是想在商业app中使用Flutter,目前基本上是将Flutter的页面嵌入到目前先有的iOS或者安卓工程,目前讲混合开发的文章有很多:不过这些文章大多讲的是安卓和flutter混合开发的,没有iOS和Flutter混合开发的比较详细的步骤实操,上周试了一下iOS和Flutter混合,有一些坑
- 苹果手机升级iOS18测试版本后使用体验不好?怎么降级?
pf_data
智能手机
近期苹果发布了诸多的iOS18版本给用户提前尝鲜测试,许多果粉们都迫不及待的选择了升级,但是有不少的果粉升级时没有考虑到设备适配性问题,导致升级之后手机变得有些卡顿,使用体验不好时,想要降级回到正式的版本,那该如何做呢?一、备份数据在开始降级之前,最重要的一步是备份好你的数据。因为降级过程中可能会导致数据丢失。你可以使用iCloud或iTunes进行备份。使用iCloud备份:打开设置>[你的名字
- 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