![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
菜鸟的编程梦_
这个作者很懒,什么都没留下…
展开
-
1、蓝桥杯 - 字符排序
算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种。如:给定 A、B、C三个不同的字符,则结果为:ABC、ACB、BAC、BCA、CAB、CBA一共3!=3*2=6种情况package exe1_5;import java.util.Scanner;public class Exe1 {static int count=0;public static vo...原创 2019-04-07 16:20:53 · 370 阅读 · 0 评论 -
2、蓝桥杯之串的简单处理
串的处理在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下:把每个单词的首字母变为大写。把数字与字母之间用下划线字符(_)分开,使得更清晰把单词中间有多个空格的调整为1个空格。例如:用户输入:you and me what cpp2005program则程序输出:You And Me What Cpp_200...原创 2019-04-07 16:25:21 · 274 阅读 · 0 评论 -
3、蓝桥杯之猜算式
看下面的算式:□□ x □□ = □□ x □□□它表示:两个两位数相乘等于一个两位数乘以一个三位数。如果没有限定条件,这样的例子很多。但目前的限定是:这9个方块,表示1~9的9个数字,不包含0。该算式中1至9的每个数字出现且只出现一次!比如:46 x 79 = 23 x 15854 x 69 = 27 x 13854 x 93 = 27 x 186…请编程,输出所有可能的情...原创 2019-04-07 17:27:33 · 508 阅读 · 0 评论 -
4、蓝桥杯之Excel地址转换
Excel是最常用的办公软件。每个单元格都有唯一的地址表示。比如:第12行第4列表示为:“D12”,第5行第255列表示为“IU5”(26进制)。事实上,Excel提供了两种地址表示方法,还有一种表示法叫做RC格式地址。第12行第4列表示为:“R12C4”,第5行第255列表示为“R5C255”。你的任务是:编写程序,实现从RC地址格式到常规地址格式的转换。【输入、输出格式要求】用户先输...原创 2019-04-07 17:30:21 · 222 阅读 · 0 评论 -
5、蓝桥杯之手机尾号评分
30年的改革开放,给中国带来了翻天覆地的变化。2011全年中国手机产量约为11.72亿部。手机已经成为百姓的基本日用品!给手机选个好听又好记的号码可能是许多人的心愿。但号源有限,只能辅以有偿选号的方法了。这个程序的目的就是:根据给定的手机尾号(4位),按照一定的规则来打分。其规则如下:如果出现连号,不管升序还是降序,都加5分。例如:5678,4321都满足加分标准。前三个数字相同,或后三...原创 2019-04-07 17:32:15 · 492 阅读 · 0 评论 -
17.蓝桥杯之提取子串
串“abcba”以字母“c”为中心左右对称;串“abba”是另一种模式的左右对称。这两种情况我们都称这个串是镜像串。特别地,只含有1个字母的串,可以看成是第一种模式的镜像串。一个串可以含有许多镜像子串。我们的目标是求一个串的最大镜像子串(最长的镜像子串),如果有多个最大镜像子串,对称中心靠左的优先选中。例如:“abcdeefghhgfeiieje444k444lmn”的最大镜像子串是:“ef...原创 2019-04-11 13:39:41 · 210 阅读 · 0 评论 -
18.蓝桥杯之取球博弈
今盒子里有n个小球,A、B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断。我们约定:每个人从盒子中取出的球的数目必须是:1,3,7或者8个。轮到某一方取球时不能弃权!A先取球,然后双方交替取球,直到取完。被迫拿到最后一个球的一方为负方(输方)请编程确定出在双方都不判断失误的情况下,对于特定的初始球数,A是否能赢...原创 2019-04-11 13:41:19 · 350 阅读 · 0 评论 -
19.蓝桥杯之密码发生器
在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解,不安全;如果设置不好记的密码,又担心自己也会忘记;如果写在纸上,担心纸张被别人发现或弄丢了…这个程序的任务就是把一串拼音字母转换为6位数字(密码)。我们可以使用任何好记的拼音串(比如名字,王喜明,就写:wangximing)作为输入,程序输出6位数字。变换的过程如下:第一步. 把字符串6个一组...原创 2019-04-11 13:42:40 · 294 阅读 · 0 评论 -
20.蓝桥杯之方阵顺时针旋转
对一个方阵转置,就是把原来的行号变列号,原来的列号变行号例如,如下的方阵:1 2 3 45 6 7 89 10 11 1213 14 15 16转置后变为:1 5 9 132 6 10 143 7 11 154 8 12 16但,如果是对该方阵顺时针旋转(不是转置),却是如下结果:13 9 5 114 10 6 215 11 7 3...原创 2019-04-11 13:44:12 · 291 阅读 · 0 评论 -
21.蓝桥杯之古堡算式
福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。请你利用计算机的优势,找到破解的答案。把 ABCDE 所代表的数字写出来。package exe21_25;import java.util.ArrayList;...原创 2019-04-11 13:45:59 · 333 阅读 · 0 评论 -
22.蓝桥杯之微生物增殖
假设有两种微生物 X 和 YX出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。如果X=10,Y=90 呢?本题的要求就是写出这两种初始条件下,60分钟后Y的数目。题目的结果令你震惊吗?这不是简单的数字游戏!真实的生物圈...转载 2019-04-11 13:47:46 · 349 阅读 · 0 评论 -
23.蓝桥杯之信用卡号校验
当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。该校验的过程:1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。3、将奇数位总和加上偶数位总和,结果应该可以被10整除。例...原创 2019-04-11 13:49:23 · 339 阅读 · 0 评论 -
24.蓝桥杯之输入日期
从键盘输入一个日期,格式为yyyy-M-d要求计算该日期与1949年10月1日距离多少天例如:用户输入了:1949-10-2程序输出:1用户输入了:1949-11-1程序输出:31package exe21_25;public class Exe24 { static int preyear = 1949; static int premonth = 10; stati...原创 2019-04-11 13:50:41 · 203 阅读 · 0 评论 -
26.蓝桥杯之Playfair密码
一种Playfair密码变种加密方法如下:首先选择一个密钥单词(称为pair)(字母不重复,且都为小写字母),然后与字母表中其他字母一起填入至一个5x5的方阵中,填入方法如下:1.首先按行填入密钥串。2.紧接其后,按字母序按行填入不在密钥串中的字母。3.由于方阵中只有25个位置,最后剩下的那个字母则不需变换。如果密钥为youandme,则该方阵如下:y o u a nd m e b ...原创 2019-04-12 21:44:17 · 356 阅读 · 0 评论 -
15.蓝桥杯之源码变换
超文本标记语言(即HTML),是用于描述网页文档的一种标记语言。HTML通过文本来描述文档显示出来应该具有的“样子”。它主要通过标签来定义对象的显示属性或行为。如果把java的源文件直接拷贝到HTML文档中,用浏览器直接打开,会发现本来整齐有序的源文件变成了一团遭。这是因为,文本中的许多回车和空格都被忽略了。而有些符号在html中有特殊的含义,引起了更复杂的局面。为了源文件能正常显示,我们...原创 2019-04-10 15:03:39 · 209 阅读 · 0 评论 -
14.蓝桥杯之古代赌局
【编程题】(满分23分)俗话说:十赌九输。因为大多数赌局的背后都藏有阴谋。不过也不尽然,有些赌局背后藏有的是:“阳谋”。有一种赌局是这样的:桌子上放六个匣子,编号是1至6。多位参与者(以下称玩家)可以把任意数量的钱押在某个编号的匣子上。所有玩家都下注后,庄家同时掷出3个骰子(骰子上的数字都是1至6)。输赢规则如下:若某一个骰子上的数字与玩家所押注的匣子号相同,则玩家拿回自己的押注,庄家按...原创 2019-04-10 15:01:34 · 186 阅读 · 0 评论 -
13.蓝桥杯之纵横放火柴游戏
【编程题】(满分34分)这是一个纵横火柴棒游戏。如图[1.jpg],在3x4的格子中,游戏的双方轮流放置火柴棒。其规则是:不能放置在已经放置火柴棒的地方(即只能在空格中放置)。火柴棒的方向只能是竖直或水平放置。火柴棒不能与其它格子中的火柴“连通”。所谓连通是指两根火柴棒可以连成一条直线,且中间没有其它不同方向的火柴“阻拦”。例如:图[1.jpg]所示的局面下,可以在C2位...转载 2019-04-10 14:59:54 · 328 阅读 · 0 评论 -
算法之冒泡排序
1、冒泡排序算法,如果是在完全无序的情况下,则其时间复杂度为O(n^2) 若是在几近有序的情况下,则推荐使用!2、第一次,经过与数组后面的元素的比较,选出一个最小的数,第二次,选出一个次小一点的数!依此,代码如下package 排序;public class 冒泡排序冒泡排序 { public st原创 2016-10-19 20:34:56 · 264 阅读 · 0 评论 -
算法之卡特兰数
一,问题描述给定一个以字符串形式表示的入栈序列,请求出一共有多少种可能的出栈顺序?如何输出所有可能的出栈序列?比如入栈序列为:1 2 3 ,则出栈序列一共有五种,分别如下:1 2 3、1 3 2、2 1 3、2 3 1、3 2 1二,问题分析先介绍几个规律:① 对于出栈序列中的每一个数字,在它后面的、比它小的所有数字,一定是按递减顺序排列的比如入栈顺序为:1 2 3 4。出栈顺序:4 3 2 1转载 2017-05-20 16:03:12 · 713 阅读 · 0 评论 -
算法之康托展开式
康托展开式: X=an*(n-1)!+(an-1)*(n-2)!+...+ai*(i- 1)!+...+a2*1!+a1*0! (解决一些序列问题的算法) 其中,ai为当前未出现的元素中是排在第几个(从0开始)。 这个公式可能看着让人头大,最好举个例子来说明一下。例如,有一个数组 s = ["A", "B", "C", "D"],它的一个排列 s1 =转载 2017-05-21 10:50:36 · 527 阅读 · 0 评论 -
算法之康托展开式(正规)
康托展开 康托展开的公式是 X=an(n-1)!+an-1*(n-2)!+…+ai*(i-1)!+…+a2*1!+a1*0!* 其中,ai为当前未出现的元素中是排在第几个(从0开始)。 这个公式可能看着让人头大,最好举个例子来说明一下。 例如,有一个数组 s = ["A", "B", "C", "D"],它的一个排列 s1 = ["D", "B", "A", "C"]转载 2017-05-21 11:03:50 · 1419 阅读 · 0 评论 -
算法之斯特林公式
斯特林公式(Stirling’s approximation)是一条用来取n的阶乘的近似值的数学公式。一般来说,当n很大的时候,n阶乘的计算量十分大,所以斯特林公式十分好用,而且,即使在n很小的时候,斯特林公式的取值已经十分准确。公式和公式的证明请移步百科:斯特林公式对于一个B进制的数,只需要对其取以B的对数就可以得到他在B进制情况下的位数(取了对数之后可能为小数,所以还需要取整后再+1) N!的转载 2017-05-21 11:41:40 · 973 阅读 · 0 评论 -
leetcode_640.求解方程
题目:求解一个给定的方程,将x以字符串”x=#value”的形式返回。该方程仅包含’+’,’ - ‘操作,变量 x 和其对应系数。如果方程没有解,请返回“No solution”。如果方程有无限解,则返回“Infinite solutions”。如果方程中只有一个解,要保证返回值 x 是一个整数。示例 1:输入: "x+5-3+x=6+x-2"输出: "x=2"示...原创 2018-06-02 13:51:09 · 851 阅读 · 0 评论 -
leetcode_231题:2的幂
题目: 题目太过简单,所以思路也免讲了,所以在时间上取胜吧我的解决方案:class Solution { public boolean isPowerOfTwo(int n) { int x = n>>1; int y = x<<1; if((x==1 && y==n)||n==1...原创 2018-06-02 14:00:35 · 242 阅读 · 0 评论 -
leetcode_212:单词搜索II
题目: 我的思路:使用回溯,重要是剪枝,这点可以让程序不用花太多时间做无用功。我的解答:class Solution { public List<String> findWords(char[][] board, String words[]) { List<String> finals = new ArrayList&...原创 2018-06-02 14:09:52 · 678 阅读 · 0 评论 -
6.蓝桥杯之括号问题
下面的代码用于判断一个串中的括号是否匹配所谓匹配是指不同类型的括号必须左右呼应,可以相互包含,但不能交叉例如:…(…[…]…)… 是允许的…(…[…)…]… 是禁止的对于 main 方法中的测试用例,应该输出:falsetruefalsefalse请分析代码逻辑,并推测划线处的代码。答案写在“解答.txt”文件中注意:只写划线处应该填的内容,划线前后的内容不要抄写。pa...原创 2019-04-10 14:37:24 · 622 阅读 · 0 评论 -
7.蓝桥杯之扑克牌排列
操作过程是:手里拿着这套扑克牌,从前面拿一张放在后面,再从前面拿一张放桌子上,再从前面拿一张放在后面,…如此循环操作,直到剩下最后一张牌也放在桌子上。下面代码的目的就是为了求出最后桌上的牌的顺序。初始的排列如果是A,2,3…K,则最后桌上的顺序为:[2, 4, 6, 8, 10, Q, A, 5, 9, K, 7, 3, J]package exe6_10;import java...原创 2019-04-10 14:41:01 · 616 阅读 · 0 评论 -
8、蓝桥杯之第一个数字(数字的值返回)
把串s中第一个出现的数字的值返回。如果找不到数字,返回-1例如:s = “abc24us43” 则返回2s = “82445adb5” 则返回8s = “ab” 则返回-1package exe6_10;import java.util.Scanner;public class Exe8 { public static void main(String[] arg...原创 2019-04-10 14:44:13 · 134 阅读 · 0 评论 -
9.蓝桥杯之放麦子
你一定听说过这个故事。国王对发明国际象棋的大臣很佩服,问他要什么报酬,大臣说:请在第1个棋盘格放1粒麦子,在第2个棋盘格放2粒麦子,在第3个棋盘格放4粒麦子,在第4个棋盘格放8粒麦子,…后一格的数字是前一格的两倍,直到放完所有棋盘格(国际象棋共有64格)。国王以为他只是想要一袋麦子而已,哈哈大笑。当时的条件下无法准确计算,但估算结果令人吃惊:即使全世界都铺满麦子也不够用!请你借助计算...原创 2019-04-10 14:46:26 · 905 阅读 · 0 评论 -
10.蓝桥杯之求21位数的水仙花数
3位数的水仙花数(先补一下什么叫水仙花数)求100~999中的水仙花数,所谓水仙花数是一个三位数,它的各位数字的立方和等于该数,例如153是一个水仙花数,因为153=1^3 + 5^3 + 3^3.N=21时,所有满足条件的花朵数。注意:这个整数有21位,它的各个位数字的21次方之和正好等于这个数本身。也就是21的水仙花数class Question10Think2O...转载 2019-04-10 14:51:39 · 500 阅读 · 0 评论 -
11.蓝桥杯之猜生日
今年的植树节(2012年3月12日),小明和他的叔叔还有小伙伴们一起去植树。休息的时候,小明的同学问他叔叔多大年纪,他叔叔说:“我说个题目,看你们谁先猜出来!”“把我出生的年月日连起来拼成一个8位数(月、日不足两位前补0)正好可以被今天的年、月、日整除!”他想了想,又补充到:“再给个提示,我是6月出生的。”根据这些信息,请你帮小明算一下,他叔叔的出生年月日。答案写在“解答.txt”中,不...原创 2019-04-10 14:53:27 · 311 阅读 · 0 评论 -
12.蓝桥杯之填算式
看这个算式:☆☆☆ + ☆☆☆ = ☆☆☆如果每个五角星代表 1 ~ 9 的不同的数字。这个算式有多少种可能的正确填写方法?173 + 286 = 459295 + 173 = 468173 + 295 = 468183 + 492 = 675以上都是正确的填写法!注意:111 + 222 = 333 是错误的填写法!因为每个数字必须是不同的!也就是说:1~9中的所有数字,...原创 2019-04-10 14:55:24 · 389 阅读 · 0 评论 -
27.蓝桥杯之漏掉的账目明细
某财务部门结账时发现总金额不对头。很可能是从明细上漏掉了某1笔或几笔。如果已知明细账目清单,能通过编程找到漏掉的是哪1笔或几笔吗?如果有多种可能,则输出所有可能的情况。我们规定:用户输入的第一行是:有错的总金额。接下来是一个整数n,表示下面将要输入的明细账目的条数。再接下来是n行整数,分别表示每笔账目的金额。要求程序输出:所有可能漏掉的金额组合。每个情况1行。金额按照从小到大排列,中间...原创 2019-04-12 21:46:50 · 365 阅读 · 0 评论