- 构建基于Android Studio开发天气预报应用
策划加强小乔
Androidstudioandroid
AndroidStudio开发天气预报应用需要完成API调用、UI设计、数据解析等步骤。以下是基于OpenWeatherMapAPI的实现方法,包含关键代码片段和详细说明。环境准备与项目创建确保已安装AndroidStudio最新版本,创建新项目选择EmptyActivity模板。在build.gradle模块文件中添加必要依赖:dependencies{implementation'com.sq
- ROS2编写一个简单的插件
CrimsonEmber
ROS笔记ROS2笔记学习
1.createabaseclasspackageros2pkgcreate--build-typeament_cmake--licenseApache-2.0--dependenciespluginlib--node-namearea_nodepolygon_base编辑ros2_ws/src/polygon_base/include/polygon_base/regular_polygon.h
- Java设计模式之<建造者模式>
目录1、建造者模式2、建造者模式结构3、实现4、工厂模式对比5、适用场景差异前言建造者模式是一种创建型设计模式。用于封装复杂对象的构建过程,通过步骤构建产品类。它包括产品类、抽象建造者、具体建造者和指挥者角色。优点在于灵活性、解耦和易扩展,缺点是增加工作量和效率较低。适用场景如构建套餐、字符串动态构建、StreamAPI操作等。1、建造者模式(BuilderPattern)建造者模式定义:封装一个
- Unity编辑器拓展(Atrribute/Event.current)
萧寒大大
Unity编辑器拓展unity编辑器游戏引擎
常用Atrribute1.InitializeOnLoad//加载脚本时初始化2.InitializeOnLoadMethod//在Unity加载时初始化编辑器类方法3.DidReloadScripts//重新加载脚本后调用方法4.PostProcessScene//加载场景调用方法5.PostProcessBuild//打包完成调用方法6.OnOpenAsset//用于打开Unity中某个资源的
- 为ubuntu系统制作deb安装包
ManualZhang
ubuntulinux运维bashdebian
依赖sudoapt-getinstallbuild-essentialdebhelpermakeautoconfautomakedpkg-devfakerootpbuildergnupg准备deb包创建资源文件夹,形式结构如下:deb包的文件夹模仿linux系统的根目录/的结构安装时系统会自动解包到根目录的对应文件夹下,卸载时也是自动删除对应的文件夹下的文件,如果文件夹只有一个文件,那么文件夹也可
- c++注意点(12)----设计模式(生成器)
尘似鹤
C/C++设计模式c++
创建型模式生成器模式(BuilderPattern)是一种创建型设计模式,它专注于将复杂对象的构建过程与表示分离,使得同样的构建过程可以创建不同的表示。就像是做饭,你可以自己慢慢做,各个步骤自己选择。而使用生成器就像是预制菜,所有的最后菜的样子,已经规划好了。你只能从中选择一个。为什么需要生成器模式?当我们需要创建具有复杂内部结构的对象(比如包含多个部件、构建步骤繁琐或有多种配置方式的对象)时,直
- 提高android studio 编译速度 实用方法
skypiea9
随着项目的规模增加,依赖的的库数量接近三位数。编译一次项目大概等待5-10分钟。还要不要人写代码了。网上找了一些实用的方法,并整理了一下。提高编译速度从三个方面入手:1.项目减肥2.IDE(jvm)配置3.Gradle的几个参数其中最重要的项目减肥。1.1如果是maven中央库没有的项目,可以把该库打包成aar,然后引用:到该库Mudule的build目录下搜*.aar,这个aar可以直接被本地引
- maven指定子项目打包
Maven多个mudule只编译、打包指定module在多module的maven项目中,如果每次打包整个工程显得有些冗余和笨重。例如A,B,P的继承关系为P|—–A|—–B即P包含A,B的module,每次打包P都会将A,B都打包。假如我只修改了A模块,那么每次都要将B都一块打包吗?当然不是,maven提供了自定义参数:-pl,--projectsBuildspecifiedreactorpro
- webpack 配置 style-loader时出现错误:Module build failed (from ../node_modules/style-loader/dist/cjs.js)
.ToString()°
webpackjavascriptes6/es7webpack前端node.js
webpack配置style-loader时出现错误,Modulebuildfailed(from…/node_modules/style-loader/dist/cjs.js):TypeError:this.getOptionsisnotafunctionatObject.loader1.确保loader配置中的顺序,loader的执行顺序是从右到左,从下到上的,这里要注意style-loade
- Educoder–Java 第1关:Object类 第2关:JAVA基础类型包装类-练习 第3关:String&StringBuilder&StringBuffer类-练习 第4关:Random类
文章目录第1关:Object类编程要求答案第2关:JAVA基础类型包装类-练习任务描述编程要求测试说明答案第3关:String&StringBuilder&StringBuffer类-练习任务描述测试说明答案第4关:Random类测试说明答案第1关:Object类编程要求请仔细阅读右侧代码,根据方法内的提示,在Begin-End区域内进行代码补充,具体任务如下:Demo类和Person类已经写好,
- 凤凰FM车机纯净版v1.0.2 无广告精简发行版
[软件名称]:凤凰FM车机纯净版v1.0.2[软件大小]:6.8MB[下载通道]:夸克盘|迅雷盘软件介绍一、作品概览《汽车经销商模拟器》由GarageMonkeys制作,是一部以二手车交易为核心的模拟经营游戏。玩家将以学徒身份入行,通过低价收购、整备翻新及高价售出车辆,逐步积累资金与声望,最终接管整间车行,建立个人二手车帝国。二、版本信息内部版本:Build.19342893存储需求:15.5GB
- 让 UniApp X “飞”起来:用 SSR 实现服务器端渲染,打造首屏秒开体验
脑袋大大的
uniappx生态专栏前端javascriptvue.jsuniappuniappx
你有没有遇到过这样的尴尬?用户打开你的UniApp项目,首屏白屏几秒钟,用户还没看到内容就走了。尤其是在SEO场景下,搜索引擎爬虫来了,你却只能返回一个“加载中…”的页面,结果自然是——被搜索引擎无情抛弃。但好消息是,从HBuilderX4.18版本起,UniAppX正式支持SSR(ServerSideRendering)服务器端渲染,这意味着你可以让你的UniApp应用“首屏即内容”,秒开页面、
- Android系统编译源码目录详解
giaoho
安卓开发学习学习
源码目录详解文章目录源码目录详解一、核心框架与系统层相关二、编译、构建与开发工具链相关三、系统应用与包管理相关四、测试、调试与辅助工具相关五、其他关键文件/文件夹/frameworks及其子目录讲解1.`base`2.`av`3.`hardware`4.`native`5.`libs`6.`minikin`7.`layoutlib`总结:高频使用优先级/build目录详解1.核心构建工具相关baz
- 在python中安装geohash库
pip安装使用镜像网站安装pipinstall-iGeohashhttp://mirrors.aliyun.com/pypi/simple报错:CannotdeterminearchiveformatofC:\Users\Zz\AppData\Local\Temp\pip-req-build-t35bzb_f解决办法:重新安装,添加信任pipinstall-ihttps://pypi.tuna.t
- Android studio项目适配Android 15求大佬教
小易码上到
androidandroidstudio
有没有大哥知道我这什么问题SDK35还有buildtool也下载了35.0.0但是还是会包文件损坏找不到路径也是对的
- Flutter状态管理之Provider的使用和架构分析
JonnyLan
FlutterAndroidiOS
状态管理在Flutter中非常重要,但是它包含的内容又非常的广泛。本文我们首先了解下什么是状态和状态管理呢?然后我们来了解官方的状态管理库Provider的使用,最后分析下Provider背后的秘密。状态管理状态Flutter是声明式编程,Widget定义的UI都是在build()函数中实现的,这个函数的功能就是将状态转换成UI。UI=f(state)官方对状态的定义如下:whateverdata
- 安卓中定义模块构建规则的mk/bp文件语法对比
始于足下 方能行更远
16_安卓编译文件mk和bp安卓
mk/bp属性理解1.1.bp文件中,以下是android_app{…}中包含的属性含义解析(android_app是生成apk标志)1.2.mk文件中,include$(CLEAR_VARS)…include$(BUILD_PACKAGE)中包含的属性含义解析(BUILD_PACKAGE生成apk标志)功能描述Android.mk(mk)Android.bp(bp)模块名称LOCAL_MODUL
- Android构建系统中的mk文件语法函数
始于足下 方能行更远
16_安卓编译文件mk和bpandroid
在Android构建系统中,尤其是在使用传统的Android.mk+make构建流程(即AOSP的legacy_android_build模式)时,构建系统提供了一组内置的Makefile函数,用于帮助开发者自动查找、加载模块和处理路径。这些函数由AOSP的构建框架定义,在build/core/definitions.mk和其他核心构建脚本中实现,是Android构建系统的“标准库”函数。以下是与
- 编译过程中遇到的一些问题
nora_mhy
错误一解决:unsetLD_LIBRARY_PATH执行env命令看当前目录是否真在LD_LIBRARY_PATH中,如果在里则是环境的问题,找出原因修正好。否则是buildroot脚本问题,搜一下错误描述是哪里输出的,反向在buildroot脚本中加日志跟踪设置LD_LIBRARY_PATH的过程,找到问题根源错误二解决:
- Cpython
先编译在运行fromdistutils.coreimportsetup,ExtensionfromCython.Buildimportcythonizeimportnumpysetup(ext_modules=cythonize(Extension('dot_cython',sources=['dot_cython.pyx'],language='c',include_dirs=[numpy.ge
- node-saas 安装过程报错
接受一个vue项目,在npminstall时一直报错在多次尝试后,终于解决,最大的问题是python和windowbuildtool的安装和版本问题。另外需要装一个windowsdkforwondows8.1
- 网络请求状态LoadingLayout的使用记录
smallestt
项目里都会遇到几种页面,分别为加载中、无网络、无数据、出错四种情况,经常要使用,效果图如下:WX20180130-151920.pngWX20180130-151942.png实现方式:build.gradle添加依赖compile'com.lai.weavey:loadinglayout:1.3.1'application里进行基础配置LoadingLayout.getConfig().setE
- 解决微信开发者工具打包上传问题指南
lh_1254
前端微信开发者工具
官方文档链接:微信开发者工具官方文档在使用微信开发者工具进行小程序打包上传时,开发者常遇到各类问题。以下是常见问题的解决方案及操作指南,帮助您高效完成代码提交与发布。一、打包上传前的必要准备1.环境配置与账号绑定AppID配置:在HBuilderX的manifest.json文件中填写正确的小程序AppID。若未注册小程序,需前往微信公众平台完成注册并获取AppID。微信开发者工具登录:确保使用与
- Python uWSGI 安装配置
冉成未来
Servicepythonlinux
文章目录PythonuWSGI安装配置Python安装uWSGI第一个WSGI应用结合Web服务器使用PythonuWSGI安装配置本文主要介绍如何部署简单的WSGI应用和常见的Web框架。以Ubuntu/Debian为例,先安装依赖包:apt-getinstallbuild-essentialpython-devPython安装uWSGI1、通过pip命令:pipinstalluwsgi2、下载
- docker操作本地文件
米高mico
docker
docker使用过程中,如果要操作本地文件,就需要在操作的目录中创建一个docker-compose.yml文件。//docker-compose.ymlversion:'3'services:web:image:tesseractshadow/tesseract4re#build:.container_name:t4command:bashtty:truevolumes:-.:/home/wor
- Ubuntu 20.04 编译安装FFmpeg及错误分析与解决方案
bubiyoushang888
ubuntuffmpeglinux
FFmpeg是一个强大的多媒体处理工具,可以处理音频、视频等多种格式。本文将详细介绍在Ubuntu20.04上编译和安装FFmpeg的步骤,并分析常见错误及其解决方案。1.准备工作在编译安装FFmpeg之前,需要安装一些必要的依赖包:sudoaptupdatesudoaptinstall-yautoconfautomakebuild-essentialcmakegit-corelibass-dev
- [附源码]java毕业设计篮球俱乐部管理系统
卓杰计算机程序设计
java开发语言mysql
项目运行环境配置:Jdk1.8+Tomcat7.0+Mysql+HBuilderX(Webstorm也行)+Eclispe(IntelliJIDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:SSM+mybatis+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.ID
- 从零构建鸿蒙应用:深度解析应用架构与项目结构
黑巧克力可减脂
鸿蒙开发harmonyos华为
目录导言HarmonyOS应用的基本组成:FA(FeatureAbility)和PA(ParticleAbility)FeatureAbility(FA)-功能可见的交互单元ParticleAbility(PA)-功能内聚的后台服务单元FA与PA的关系与协作项目目录详解:entry、library、build.gradle、ohos.config.json等关键文件和目录的作用关键文件和目录详解总
- Connection timed out: connect. If you are behind an HTTP proxy, please configure the proxy settings
FirebaseCrashlytics提示mapping上传超时FirebaseuploadCrashlyticsMappingFileRelease解决方案核心就是禁用掉uploadCrashlyticsMappingFileRelease这个任务最外层build.gradle中添加firebaseCrashlytics{//false为不上传,编译时也不会有对应的任务,//这里可以根据实际需求
- #Uniapp鸿蒙开发全攻略:跨平台应用的高效适配实践
这段时间研究了Uniapp在HarmonyOS平台的适配与优化方案。本文将全面剖析Uniapp开发鸿蒙应用的核心技术,从环境配置到性能优化,从功能适配到上架发布,带你掌握这套跨平台框架在鸿蒙生态中的最佳实践。一、Uniapp鸿蒙开发环境深度配置1.1基础环境搭建必备工具链:HBuilderX3.6.5+(官网下载)Node.js14+(推荐16.xLTS版本)HarmonyOSSDK3.0+Jav
- 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