- 【Python百日进阶-Web开发-Peewee】Day289 - Peewee 的扩展(九)pwiz / 架构迁移(上)
岳涛@心馨电脑
数据库pythondash前端
文章目录13.15pwiz,模型生成器13.15.1命令行选项13.16架构迁移SchemaMigrations13.16.1示例用法13.16.2支持的操作13.15pwiz,模型生成器pwiz是peewee附带的一个小脚本,能够自省现有数据库并生成适合与底层数据交互的模型代码。如果您已经有一个数据库,pwiz可以通过生成具有正确列关联和外键的骨架代码来给您一个很好的提升。如果您使用安装peew
- 如何从Angularjs 升级到 Angular(译文)
快乐2020
原文:UpgradingfromAngularJStoAngularAuthor:AngularJS官方译者:philoenglish.com团队关键字:AngularjsAngularAngular1.xAngular2.xmigration迁移,升级这里的Angular是指Angular2.x,而AngularJS是指AngularJS1.x版本。Angular(通常是指"Angular2+"
- 「C#」EF Core的“迁移”(Migration)
Raink_LH
假装会写C#萌新入坑数据库c#开发语言sql.net
1、“迁移”是什么“迁移”(Migration)我觉得可以理解为将实体类的变化转换为对数据库修改的方案,应用迁移就是将这个修改方案应用到数据库。其次,迁移也记录了数据库的版本历史等信息。2、添加迁移2.1、dotnetclitool参考:EFCore工具参考(.NETCLI)-EFCore添加迁移等后续操作用到了dotnet的命令行工具,这里记录下工具的安装(前提是已经安装了dotnet)dotn
- 关于django makemigrations/migrate在生成数据表上遇到的一些问题
青衫客36
Pythondjangosqlitepython
当你删除了生成的migration文件夹,将数据库从SQLite切换到MySQL,并且在执行makemigrations命令时显示没有变化,同时MySQL中没有生成表,可能是由于以下原因造成的:Django迁移系统的工作方式:Django的迁移系统是基于模型文件(通常位于models.py)中的变化来生成迁移的。当你运行makemigrations命令时,Django会检查自上次迁移以来模型定义有
- django的用户管理与token认证(四)
smile_pbb
pyhton框架djangosqlite数据库
一、django的用户管理1.用户认证介绍django的用户认证主要是用于用户的登陆认证上,如果用户名和密码正确,然后做对应的操作Django的认证组件使用的默认用户模型类(User)存储用户信息,包括用户名、密码和电子邮件地址。在执行pythonmanage.pymakemigrations在数据库中会生成几张默认的表mysql>showtables;+---------------------
- Django数据库重新初始化
bigcarp
django数据库python
开发过程中models.py中的模型经历一番爆改后,执行migrate就报错。干脆重新初始化。操作步骤:删除旧的数据库文件,重新创建。如果你是使用SQLite,删除后无需重新创建,Django在运行迁移时可以自动完成SQLite数据库创建。如果使用其他数据库,需要手动创建一个新的数据库。删除迁移文件:删除每个应用下的migrations文件夹中除了__init__.py文件以外的所有文件。这一步是
- C#系列-EF框架的创新应用+利用EF框架技术的知名开源应用项目(42)
管理大亨
C#系列oracle数据库c#开发语言服务器开源
EF框架的创新应用EF框架,即EntityFramework,是微软开发的一个开源的对象关系映射(ORM)框架,用于.NET应用程序中。它允许开发者以面向对象的方式处理数据库,而无需关心底层的SQL语句和数据库结构。EF框架的创新应用主要体现在以下几个方面:代码优先迁移(CodeFirstMigrations):EF框架提供了从代码生成数据库结构的功能。这意味着开发者可以先编写实体类,然后通过EF
- python+django小区物业管理系统_2oma5-
QQ402205496
djangopython后端
现代化的物业管理系统会要求提高物业工作人员的整体效率,招聘一些高素质的管理员,负责物业后勤的计算机机房、日常维护和软硬件升级服务,为用户打造舒适,方便的小区环境,提高小区整体的管理水平,打造小区物业管理品牌,建立小区物业可持续发展道路。django应用目录结构project1|--migrations//数据移植(迁移)模块|-------__init__.py|--__init__.py|--a
- Django使用oracle常见问题
高刚_0743
1.Django2.0+和Oracle11Traceback(mostrecentcalllast):File"/Users/user/anaconda3/lib/python3.6/site-packages/django/db/migrations/recorder.py",line55,inensure_schemaeditor.create_model(self.Migration)Fil
- 【数据库学习】Flyway
兔兔西
数据库学习数据库学习之postgres数据库
1,功能数据库版本管理;实现管理并跟踪数据库变更,支持数据库版本自动升级。2,使用1)java使用添加依赖org.flywaydbflyway-core6.5.7配置:javaspring:flyway:#是否启用enabled:true#可以支持多个location,用','隔开locations:classpath:db/migration#是否创建元数据表validate-on-migrat
- python web 框架Django学习笔记
ersaijun
djangopython前端django
2018年5月pythonweb框架Django学习笔记Django架站的16堂课MVC架构设计师大部分框架或大型程序项目中一种软件工程的架构模式,把程序或者项目分为三个主要组成部分,Model数据模型、View视图、Controller控制器。命令及设置相关创建数据库及中间文件,每次数据表有改动都要执行下面的两句pythonmanage.pymakemigrationsname同步更新数据库内容
- 20181207springboard
罗罗ph
1)翻译下面的句子:许多人认为海外留学是移民的跳板。参考翻译:Studyingabroadisregardedasaspringboardforimmigration.或Adegreefromaforeigninstitutioniswidelyconsideredaspringboardforimmigration.2)情景她的母亲很有信心这次歌唱会成为她女儿进入娱乐圈的跳槽。造句Hermoth
- WordPress网站搬家插件 All in one WP Migration_适合新手 wordpress 一键迁移方法
Amea
AllinoneWPMigration插件比较适合网站在阿里云虚拟主机、bluehost虚拟主机、godaddy虚拟主机,要搬家到siteground虚拟主机、云服务器的时候。因为是一键生成和导入搬家文件,所以认为很适合新手、小白使用。小白操作网站搬家,步骤越少越好,看起来对小白很适用。WordPress网站备份插件有很多种,搬家方法也有好几种,都可以实现网站迁移的目的。而在实际体验中是千差万别的
- django model对象修改_Django模型修改及数据迁移实现解析
抑郁了该怎么办
djangomodel对象修改
MigrationsDjango中对Model进行修改是件麻烦的事情,syncdb命令仅仅创建数据库里还没有的表,它并不对已存在的数据表进行同步修改,也不处理数据模型的删除。如果你新增或修改数据模型里的字段,或是删除了一个数据模型,你需要手动在数据库里进行相应的修改或者使用South。Django1.7中已经集成了South的代码,提供了3个新命令:migrate:用于执行迁移动作,具有syncd
- django中实现数据迁移
攻城狮的梦
python开发djangopython
在Django中,数据迁移(datamigrations)通常指的是将模型(models)中的数据从一个状态迁移到另一个状态。这可以涉及很多操作,比如添加新字段、删除字段、更新字段的数据类型,或者更改表之间的关系等。Django提供了一套强大的迁移系统,用于管理模型变更并同步到数据库中,但这不是数据迁移的全部内容。Django的数据迁移通常分为两个步骤:SchemaMigrations(模式迁移)
- django解决Table ‘xx‘ already exists的方法
南国那片枫叶
django数据库pythonexistmysqlmigrate迁移
1,首先看已存在的这个库表结构是什么样的,先让对应的model.py恢复到和他一样的字段2,删除对应app下的migrations目录里面除__init__.py文件的其他所有文件3,回到manage.py所在目录执行pythonmanage.pymakemigrations4,执行pythonmanage.pymigrate--fake,参数–fake是关键,这样就不会提示表已经建好了,执行成功
- laravel 数据库迁移
苍松拔雨
1.介绍迁移的作用就是编程式的创建应用数据库的结构2.创建迁移phpartisanmake:migrationcreate_users_table新创建的迁移会放在database/migrations目录,如2014_10_12_000000_create_users_table.php文件名中的时间字段用来让Laravel确认迁移顺序,即up时按时间升序执行,down时按降序执行选项说明--c
- 自己搜集的PTE资料(复制粘贴的)
ValleyGo
PTEACADEMIC——全球广泛认可的快捷出国语言考试PTEACADEMIC,又称PTE学术英语考试,是PearsonTestofEnglish(简称PTE)家族一员,是专为有留学移民计划人士设置的基于机考的领先出国语言考试之一。作为美国管理专业研究生入学考试委员会GMAC®认可的考试,以及澳洲移民局(AustralianDepartmentofImmigrationandCitizenship
- truffle 创建测试合约并部署到测试网络
不与天斗8866
web3区块链truffle
1、npm安装trufflenpminstall-gtruffle2、创建truffle项目mkdirimooc-on-blockchain-truffle&&cdimooc-on-blockchain-truffle3、初始化truffle目录,会生成如下几个目录contracts存放.sol合约文件migrations部署脚本目录test测试文件目录truffle-config.jstruff
- Abp vNext(三)数据迁移
一个程序员_zhangzhen
abpvnext.netcore
文档版本:7.0官方文档给的数据迁移的方式是这样的,第一步在Acme.BookStore.EntityFrameworkCore目录打开命令行终端输入以下命令:dotnetefmigrationsaddCreated_Book_Entity第二步运行Acme.BookStore.DbMigrator应用程序来更新数据库用上面方式,初始化数据库、增加字段以及删除字段,试了之后都没问题,可正常执行。这
- git的奇特知识点
虫虫教父
git
展示帮助信息githelp-gThecommonGitguidesare:attributesDefiningattributesperpathcliGitcommand-lineinterfaceandconventionscore-tutorialAGitcoretutorialfordeveloperscvs-migrationGitforCVSusersdiffcoreTweakingdi
- django报错: raise NotSupportedError(django.db.utils.NotSupportedError: MySQL 8 or later is required
雾林小妖
Python基础django数据库版本不支持
1、问题概述?在django框架中使用ORM模型开发程序,执行pythonmanage.pymakemigrations命令生成同步原语的时候,提示如下问题:raiseNotSupportedError(django.db.utils.NotSupportedError:MySQL8orlaterisrequired(found5.7.43).意思就是:需要MySQL8或更高版本但是在当前的企业环
- 使用ant执行sql脚本重建oracle数据库
liyanboss
工作脚本OracleSQLAnt数据结构
最近工作中,需要把之前的产品(基于mysql数据库的)转换到oracle环境中,利用oracle自己提供的一个工具sqldeveloper(有时间的话,把这个工具如何把mysql转换到oracle,也整理出来),里面的migration功能,可以把mysql的表结构,数据都导出成oracle的格式,对于生成的sql脚本,为了便于开发人员,持续构建,我写成了ant文件,供大家使用。DROPUSER$
- 解决django.db.utils.DataError: (1406, "Data too long for column 'gender' at row 1")
f109
在pycharm中TOOL—>runmanage.pytask运行createsuperuser,按照提示输入完用户名,邮箱,密码后提示出现了出错原因分析:在user表中gender的max_length为5但是female长度为6因此修改一下gender的max_length即可然后重新创建表TOOL—>TASKmakemigrations—>migratecreatsuperuser即可
- fluentmigrator连接mysql_怎么利用FluentMigrator实现数据库迁移
weixin_39843847
FluentMigratorFluentMigrator是一个基于.NET的迁移框架,你可以像使用RubyonRailsMigrations一样使用它。FluentMigrator的最新版本是3.13版,官网地址https://github.com/fluentmigrator/fluentmigrator。你可以使用C#编写数据库迁移类,而不需要编写任何SQL脚本。从使用方式上看,它非常像EF/
- fluentmigrator连接mysql_如何使用FluentMigrator进行数据库迁移
有事没事捕蒜子
标题:如何使用FluentMigrator进行数据库迁移地址:https://www.cnblogs.com/lwqlun/p/10649949.html作者:LamondLuFluentMigratorFluentMigrator是一个基于.NET的迁移框架,你可以像使用RubyonRailsMigrations一样使用它。FluentMigrator的最新版本是3.13版,官网地址https:
- EF Core入门例子(以SqLite为数据库)
zxy2847225301
C#编程.netcoreC#.netcoreEFCoreSqLiteORM
测试环境:visualstudio2017.netcore2.1具体步骤如下:1新增名称为EFCoreDemo的.netcore控制台程序,版本选择.netcore2.1,项目不能放到带中文的目录下,不然到后面执行Add-Migration命令时会报如下的错误同时,如果这个解决方案有多个项目,一定要把当前项目设为启动项目,且程序包管理器控制台默认项目一定要选对,不然到后面执行Add-Migrati
- .net core 数据库从sqlserver迁移到mysql
一刀道人
Mysql
先抛个链接https://blog.csdn.net/sD7O95O/article/details/78941648按照以上博客中的操作,发现add-migration可以成功,但是update-database的时候报错,具体报错信息不记得了,大概的意思就是当前mysql的语法不匹配,想到更换mysql的版本,于是就开始了跳坑的过程。本来我的机器(win10)mysql装的是:5.5.47,c
- 【Microsoft Azure 的1024种玩法】六十七.通过Data Migration Assistant 将本地自建SQL Server 数据库脱机迁移至Azure SQL Database
一只特立独行的兔先森
【MicrosoftAzure的1024种玩法】azure数据库microsoft数据库迁移AzureDatabase
【简介】作为一个DBA,我们需要全面了解SQLDatabase数据库的备份以及迁移,如果我们本地有一个单机的SQLServer数据库,我们想将其迁移至AzureSQLDatabase中,那我们有什么好的方式呢?我们可以直接使用DataMigrationAssistant数据迁移助手来对本地SQLServer进行迁移,可将其数据迁移到AzureVM或AzureSQL数据库上的SQLServer,本篇
- Django迁移错误migrate
创造new_world
参考:https://www.jianshu.com/p/ebe84b8fa365?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=weixin-friendsDjango迁移之migrate问题:tablexxalreadyexist前面我们说到了makemigrations是将models.py里的模型
- 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