约翰认为字符串的完美度等于它里面所有字母的完美度之和.每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数. 约翰不在乎字母大小写.(也就是说字母F和f)的完美度相同.给定一个字符串,输出它的最大可能的完美度.例如:dad,你可以将26分配给d,25分配给a,这样整个字符串完美度为77. 分析: 由排序不等式,出现次数最多的字母显然应该给26.所以这个题目变成了统计每种字母出现的次数了,然后按照出现次数从大到小,依次分配从高到低的权值.这就是最朴素的贪心思想.  …
分析: 本题可以抽象成,从一个整数开始,每次减去a,再加上b (a,b都是正数),要求每次操作都不产生负数. 针对本题a[i] = R[i], b[i] = R[i] – O[i],注意O[i] < R[i],我们有0<b[i]<a[i]. 所以尽管每次有减有加,但是加的没有减的多,总数还是在不断见效的.关键我们是要“最有利”的一种执行顺序.大家可以尝试多种贪心策略. 我们给出标准答案——按照b[i]不增的顺序排序,是最“有利”的. 为了定义“有利”,我们这样证明我们的结论: 如果对于b…
有若干个活动,第i个开始时间和结束时间是[Si,fi),只有一个教室,活动之间不能交叠,求最多安排多少个活动? 分析: 我们就是想提高教室地利用率,尽可能多地安排活动.考虑容易想到的几种贪心策略: (1) 开始最早的活动优先,目标是想尽早结束活动,让出教室.然而, 这个显然不行,因为最早的活动可能很长,影响我们进行后面的活动.例如活动开始和结束时间分别为[0, 100), [1,2) ,[2, 3), [3, 4),[4,5],安排[0,100)的这个活动之后,其他活动无法安排,可是最优解是安排…
有若干个活动,第i个开始时间和结束时间是[Si,fi),活动之间不能交叠,要把活动都安排完,至少需要几个教室?   分析:能否按照之一问题的解法,每个教室安排尽可能多的活动,即按结束时间排序,再贪心选择不冲突的活动,安排一个教室之后,剩余的活动再分配一个教室,继续贪心选择…… 反例: A:[1,2)  B:[1,4) C:[5,6) D:[3,7) 已经按结束时间排好顺序,我们会选择教室1: A C教室2:  B教室3:  D需要3个教室.但是如果换一种安排方法,我们可以安排AD在一个教室,而B…
n个人,已知每个人体重,独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两个人.显然要求总重量不超过独木舟承重,假设每个人体重也不超过独木舟承重,问最少需要几只独木舟? 分析: 一个显然的策略是按照人的体重排序. 极端化贪心策略,最重的人要上船——如果最重的人和最轻的人体重总和不超过船的承重,则他们两个占用一条船.否则(因为假设最重的人的体重也不超过船的承重了),最重的人单独占一条船.转变为(n – 1)或者(n – 2)的问题了.   关键在于这种贪心策略是正确的.我们可以证明,最优解…
Swift语法基础入门二(数组, 字典, 字符串) 数组(有序数据的集) *格式 : [] / Int / Array() let 不可变数组 var 可变数组 注意: 不需要改变集合的时候创建不可变集合是很好的实践.如此 Swift 编译器可以优化我们创建的集合. // 声明数组 let arr1: Array<Int> // 推荐 let arr2: [Int] arr2 = [10, 20] // 先定义再初始化 //arr2 = [30, 40] var arr3: [Double]…
约翰认为字符串的完美度等于它里面所有字母的完美度之和.每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数. 约翰不在乎字母大小写(也就是说字母A和a的完美度相同).给定一个字符串,输出它的最大可能的完美度.例如:dad,你可以将26分配给d,25分配给a,这样整个字符串完美度为77. 收起   输入 输入一个字符串S(S的长度 <= 10000),S中没有除字母外的其他字符. 输出 由你将1-26分配给不同的字母,使得字符串S的完美度最大,输出这个完美度. 输入…
整型,bool值,字符串 一.整型 整型十进制和二进制 整型:整型在Python中的关键字用int来表示; 整型在计算机中是用于计算和比较的 可进行+ - * / % //(整除) **(幂运算) 十进制:类似于15,20,30,152 二进制:类似于110001 十进制和二进制的互相转换 十进制--->二进制 十进制除以2获取他的余数然后从下向上将这些余数拼到一起 print(bin(15)) 例如:十进制为15 二进制为1111 整型,bool值,字符串 一.整型 整型十进制和二进制 整型:…
字符串,是我们最常用的类型,每个用双引号来表示的串都是一个字符串.Java中的字符串是一个预定义的类,跟C++ 一样叫String,而不是Char数组.至于什么叫做类,暂时不做过多介绍,在之后的篇章中会有关于类的详细介绍,在这里,只需要将类理解为一个模具,就像做月饼那样,想要什么外观的月饼,就选用相应的模具一压,再往烤箱里一放,便能得到我们想要的月饼.用同一个模具所做出来的月饼基本是一样的.当然,这个比喻并不十分恰当,不过就目前而已,它是有效的.声明一个String类型的变量之后,这个变量便是S…
016 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 10 布尔类型和字符串的字面值 本文知识点:字面值 关于字面值的概念,需要注意:很多地方,我们可能就把字面值称作常量.我们最近几篇文章也都是讲变量与常量.如果我后面文章提到常量,我们也要知道,字面值其实也是常量的一种. 首先,来学习布尔boolean类型的字面值. 布尔boolean类型的字面值 布尔类型的值: C语言中的布尔类型的值可以是0或者1,但是Java中绝对不允许用0.1作为布尔类型的字面值,J…
小插曲之变量和字符串 让编程改变世界 Change the world by program 变量 (此处只是省略N多细节,详细通过视频学习) 变量名就像我们现实社会的名字,把一个值赋值给一个名字时,Ta会存储在内存中,称之为变量(variable). 在大多数语言中,都把这种行为称为"给变量赋值"或"把值存储在变量中". 不过Python与大多数其他计算机语言的做法稍有不同,Ta并不是把值存储在变量中,而更像是把名字贴在值的上边. 所以有些Python程序员会说&…
1182 完美字符串             题目来源:                         Facebook Hacker Cup选拔         基准时间限制:1 秒 空间限制:131072 KB 分值: 5         难度:1级算法题 约翰认为字符串的完美度等于它里面所有字母的完美度之和.每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数. 约翰不在乎字母大小写.(也就是说字母F和f)的完美度相同.给定一个字符串,输出它的最大可能的完…
在 python变量 文章中我们对python变量做了一个简单的了解,整数/浮点数/bool值相对来讲都比较简单,今天详细在讲解一下关于字符串的内容,字符串俗称:str. 在本文会大量的使用print 和format 函数,如果还有不太熟悉使用的盆友,请先预习:关于python开发中print 函数和format 函数详细解释 一.字符串运算符 介绍两个关于python字符串的运算符,”in” 和 “not in”,主要用于检测字符串中是否存在某个字符或者字符串,如果存在返回True,不存在返回…
最近一直有事,博客也停笔了一段时间,十分抱歉. 这一篇主要讲讲对象的比较,什么是对象的比较,我们知道两个数值类型只需要用"=="符号即可进行相等判断,但如果是两个Goods对象呢?如何进行比较?这时候,我们的equals方法就派上用场了.equals方法是类的祖先Object类的另一个protected方法,既然是protected方法(能被同一个包里的所有类所访问, 能被该类的子类所访问,子类可以和父类不在一个包中),子类是可以直接访问的,但如果没有覆盖该方法,那么使用的只是Obje…
这一篇主要讲解Java中的变量,什么是变量,变量的作用以及如何声明,使用变量. 那么什么是变量?对于初学者而言,可以将变量理解为盒子,这些盒子可以用来存放数据,不同类型的数据需要放在对应类型的盒子里.那么,我们为什么要使用盒子呢?主要用于存放程序运行过程中需要临时存取和操作的数据,打个比方,我们做一顿番茄炒蛋,需要先把番茄洗一洗,然后切好放碗里,鸡蛋打好后要先放另一个碗里,然后加上料酒,加水搅拌,之后再放锅里一顿瞎操作后,一顿美味的番茄炒蛋便出来了,这个过程中,番茄炒蛋相当于我们的结果,番茄跟鸡…
运算符,顾名思义就是用于运算的符号,比如最简单的+-*/,这些运算符可以用来进行数学运算,举个最简单的栗子: 已知长方形的长为3cm,高为4cm,求长方形的面积. 好,我们先新建一个项目,命名为Rectangle. 然后右键src文件夹,新建一个package,命名为pers.frank.rectangle. 这里补充说明一下包的命名规则,相信很多人都知道,包命名的时候用去www域名反写,加上项目名称,但实际上,那一般是用于公司项目的命名方式,对于不同项目,有着不同的命名规则. indi :个体…
什么是控制流程?简单来说就是控制程序运行逻辑的,因为程序一般而言不会直接一步运行到底,而是需要加上一些判断,一些循环等等.举个栗子,就好比你准备出门买个苹果,把这个过程当成程序的话,可能需要先判断一下外面是否下雨,下雨的话就得带伞,否则就直接出门,同时,外面可能有很多家水果店,那去哪家买呢?这里把价格放在第一要素,所以你会一家一家跑,直到找到最便宜的那家为止. 其实,上述买苹果的过程,已经用了两种最常用的控制流程:条件和循环.画个流程图就像这样: 通过这个图,大家应该能很清楚的了解整个决策过程.…
什么是数组?顾名思义,就是数据的组合,把一些相同类型的数放到一组里去. 那为什么要用数组呢?比如需要统计全班同学的成绩的时候,如果给班上50个同学的成绩信息都命名一个变量进行存储,显然不方便,而且在做成绩统计,如求总分,平均分,方差等的时候,遍历成绩信息又成了一大难题,这个时候,你就需要用到数组了. 数组可以很好的解决这两个问题,数组名只有一个,只需要使用数组名加下标来访问各个元素的信息即可,遍历的时候,由于下标是连续的,所以访问起来十分方便. 接下来,就开始正式介绍一下数组吧. 数组是用于存储…
今天要说的是Java中两个非常重要的概念--类和对象. 什么是类,什么又是对象呢?类是对特定集合的概括描述,比如,人,这个类,外观特征上,有名字,有年龄,能说话,能吃饭等等,这是我们作为人类的相同特征,那么对象呢?我们口口声声说要面向对象编程,可是找了这么久也没找到对象,这还怎么编程(滑稽).此对象非彼对象,Java中的对象是某个具体类的实例,就好比你和我都是人类这个大类的一个实例个体,也就是说,我们都是人类的一个具体对象,我们有各自的名字和年龄. 那为什么要用类和对象这样的概念呢? 这是一个好…
俗话说的好,实践出真知,所以除了理论知识掌握扎实以外,更重要的是要多加操练,这样才能掌握核心科技. 今天我们就用刚学会的类来实践一下,目标便是完成上一篇中的剁手任务. 我们的商品类已经准备好了,代码重新罗列一次,这里增加了一个重载方法,关于重载这里不过多介绍,以后会专门文章介绍,这里把它当成一个普通方法就好了,主要用来比较两个商品是否相等,如果对代码不熟悉的话可以再返回去看一下上一篇文章. 这里顺便介绍一下Java注释的正确使用姿势.注释是插在源代码中间用于对代码进行说明的文字,不会被编译和执行…
继承是类的一个很重要的特性,什么?你连继承都不知道?你是想气死爸爸好继承爸爸的遗产吗?(滑稽) 开个玩笑,这里的继承跟我们现实生活的中继承还是有很大区别的,一个类可以继承另一个类,继承的内容包括属性跟方法,被继承的类被称为父类或者基类,继承的类称为子类或者导出类,在子类中可以调用父类的方法和变量.在java中,只允许单继承,也就是说 一个类最多只能显示地继承于一个父类.但是一个类却可以被多个类继承,也就是说一个类可以拥有多个子类.这就相当于一个人不能有多个父亲一样(滑稽,老王表示不服). 话不多…
webpack的基础入门 这里对于 webpack 的基础入门进行一些总结,可以参考 github 上的 webpack-demo ,链接是 https://github.com/RealAndMe/webpack-demo 1. 简介 webpack是前端资源加载/打包工具.它将根据模块的依赖关系将一些静态资源 js , less , css 等进行静态分析,然后转化为静态文件,减少页面请求,实现页面的优化. 2. 如何使用webpack 在安装webpack之前,你的本地环境必须要有 nod…
VBox&vmware虚拟机安装Linux及Linux基础入门学习 通过VMware workstation安装Linux 在安装虚拟机之前,我特意上网搜索了一下目前常使用的虚拟机软件,了解了相关知识之后,我先选择通过VMware workstation安装Linux. 我选择VMware版本为: VMware workstation 12.5 pro 我选择安装的Linux版本为: 深度(deepin)的Ubuntu 首先安装 VMware workstation 12.5 pro ,十分简单…
.net core +codefirst(.net core 基础入门,适合这方面的小白阅读)   前言 .net core mvc和 .net mvc开发很相似,比如 视图-模型-控制器结构.所以.net mvc开发员很容易入手.net core mvc .但是两个又有细微的区别,比如配置.net mvc中Web.config和Global.asax消失,而在.net core mvc中则是Startup.cs.Program.cs.appsettings.json等等.所以想要深入了解.ne…
本文内容 Python介绍 安装Python解释器 输出 变量 输入 条件判断语句 循环语句 模块讲解 三元运算 字符串和二进制的相互转化 本系列文章使用的Python版本为3.6.2 使用开发工具为Pycharm2017 一.Python介绍 Python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOBE排行榜,Python赶超PHP占据第五, …
目录 1. 介绍 2. 目录 3. 下载地址 1. 介绍 适用人群 完全零基础入门,不需要任何前置知识. 课程概述 本系列教程面向零基础的同学,是一个深入浅出,通俗易懂的Python3视频教程. 前半部分主要讲解Python3的语法特性,后半部分着重讲解Python3在爬虫.Tkinter.Pygame游戏开发等实例上的应用.整个系列共16个章节,前边13个章节从一个小游戏引入Python,逐步介绍Python的语法以及语言特色.最后3个章节为案例的演示,是前边内容的总结和提高. 其他介绍 2.…
Python 零基础入门 1.1 Python介绍 Python 是一门优雅且健壮的面向对象解释型计算机程序编程语言,具有面向对象.可升级.可扩展.可移植 语法简洁清晰易学.易读写.易维护.健壮性.通用性.跨平台等特点.目前广泛应用于人工智能.机器学习. 科学计算.大数据分析.图像处理.爬虫.区块链.自动化测试.测试开发.自动化运维.Web 开发.接口开发 网站搭建等领域. 1.2 环境搭建本书介绍的是基于 Windows 平台上进行安装,以及选择 Eclipse 4.5.2+Python 3.…
038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结 本文知识点:案例演示switch结构并对switch结构进行总结 案例演示switch结构 程序代码: 下图中的代码没有格式缩进,如何解决? 在eclipse的代码编辑区,右击,source→format 代码就完成格式缩进了,看起来清爽很多 执行程序,会发现有问题: 发现输入4,包括周四之后的所有语句都输出了. 原因何在? 答案很简单,没有…
原文地址:https://www.jianshu.com/p/e186a7fce8cc 在学东西之前,我们先有一个方法论,知道如何学习.学习一个东西一般都遵循以下几个环节: xxx是什么,诞生的原因,能解决什么问题. 如何安装,如何使用(快起启动一个demo). 涉及到的一些基础概念介绍和基础入门使用. 中阶.高阶的功能特性使用. 高可用部署方案. 原理的深入理解. 这篇文章主要处于第一.二环节,让新手更好得入门. 1.rabbitmq是什么 rabbitmq 是目前非常热门的一款消息中间件.R…
摘要:Python的普遍使用场景是自动化测试.爬取网页数据.科学分析之类,这其中都涉及到了对数据的处理,而数据的表现形式很多,今天我们来讲讲字符串的操作.   字符串是作为任意一门编程语言的基础,在Python中的关键字叫做str.而本文对字符串的操作都是建立在数据是字符串而言,可以通过内置函数type()来测试一组数据是否是字符串.   官方标准库有一个独立的文件叫string.py,对字符串的一些常量和方法进行了定义.新手不用去查阅,应先知其然,不用知其所以然,否则学习的动力瞬间烟消云散,深…