
算法思维训练
Fzuim
不忘初心,方得始终!
展开
-
算法思维——字符串压缩程序(华为2014校园招聘的机试题目)
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则: 1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。 2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。要求实原创 2016-10-21 15:16:37 · 608 阅读 · 0 评论 -
算法思维——全排列
全排列思想:全排列数f(n)=n!(定义0!=1)如1,2,3三个元素的全排列为:1,2,31,3,22,1,32,3,13,1,23,2,1共3*2*1=6种 3!贴上代码块:#include #include #include void Swap(char* a, char* b){ char t = *a; *a = *b; *b原创 2016-10-25 16:25:20 · 433 阅读 · 0 评论 -
【算法】括号匹配——2017华为招聘机试题
给定一个字符串,里边可能包含“()”、"{}"、“[]”三种括号,请编写程序检查该字符串的括号是否成对出现,且嵌套关系正确。输出:true:代表括号成对出现并且嵌套正确,或字符串无括号字符,false:未正确使用括号字符。分析:这个题目,如果有做过较多笔试题目的应该知道,简单的采用一个栈的特性,就能解决,左括号栈顶字符必须和第一个入栈的右括号字符匹配;#include "stdafx.h...原创 2017-07-21 15:40:22 · 2505 阅读 · 0 评论 -
【算法】打印顺序——2017华为招聘机试题
某个打印机根据打印队列执行打印任务。打印任务分为九个优先级,分别采用数字1~9表示,数字越大优先级越高。打印机每次从队列头部取出第一个任务A,然后检查队列余下任务中有没有比A优先级更高的任务,如果有比A优先级高的任务,则将任务A放到队列尾部,否则执行任务A的打印。请编写一个程序,根据输入的打印队列,输出实际打印顺序。函数原型:void printOrder(const int input[...原创 2017-07-21 15:50:57 · 11715 阅读 · 2 评论 -
【算法】深度优先搜索
以一道题目,作为介入点:定义一个二维数组N*M(其中2<=N<=10;2<=M<=10),如5×5数组下所示:intmaze[5][5]={0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,1,0,...原创 2017-07-25 10:06:31 · 471 阅读 · 0 评论 -
【算法】等差数列——2017网易校招机试题
如果一个数列S满足对于所有的合法的i,都有S[i + 1] = S[i] + d, 这里的d也可以是负数和零,我们就称数列S为等差数列。小易现在有一个长度为n的数列x,小易想把x变为一个等差数列。小易允许在数列上做交换任意两个位置的数值的操作,并且交换操作允许交换多次。但是有些数列通过交换还是不能变成等差数列,小易需要判别一个数列是否能通过交换操作变成等差数列 输入描述:输入包括两行,...原创 2017-09-08 10:26:59 · 471 阅读 · 0 评论 -
【算法】最长路径——百度2017校招机试题
解析:这道题目刚拿到手,很容易就确定是道优先搜索算法的题目,和我博客之前写的一道迷宫题目一致。根据题目,我们只要在输入的矩阵中找到最高点和最低点,然后从最高的地方开始4个方向的轮训,直到最后到达最低点。那既然是要求最长的奔跑路径,那么每次4个方向轮训肯定是要走当中值最大的那一个了。 #include <iostream>#include <stack>us...原创 2017-09-30 15:25:45 · 387 阅读 · 0 评论