算法
文章平均质量分 60
我还能抢救一下
这个作者很懒,什么都没留下…
展开
-
编程之法学习笔记——1.2字符串的包含
题目描述:给定一长字符串a和一短字符串b。请问,如何最快地判断出短字符串b中的所有字符是否都在长字符串a中?请编写函数bool StringContain(string &a,string &b)实现此功能。为简单起见,假设输入的字符串只包含大写英文字母。暴力轮询法:设A、B字符串长度分别为m、n,使用两个指针i、j标识A、B字符串中位置。对A中全部字符,搜索B中j位置的字符是否出...原创 2018-04-22 13:27:17 · 273 阅读 · 0 评论 -
编程之法学习笔记——1.1字符串的旋转
题目描述:给定一个字符串,要求将字符串前面的若干个字符移到字符串的尾部。例如,将字符串"abcdef"的前3个字符'a','b'和'c'移到字符串的尾部,那么原字符串将变成"defabc"。新建空间法:新建一个新的字符串,长度与原字符串长度相同为n,设移动字符数为x。将原字符串的0~(x-1)位的字符移动到新字符串的(n-x+1)~n位。原字符串中的x~n位的字符移动到新字符串的0~(n-x)位。...原创 2018-04-20 18:44:42 · 422 阅读 · 0 评论 -
编程之法学习笔记——1.3字符串的全排列
题目描述:输入一个字符串,打印出该字符串中字符的所有排列。例如,输入字符串"abc",则输出由字符'a'、'b'、'c'所能排列出来的所有字符串"abc"、“acb”、"bac"、"bca"、"cab"、"cba"。递归法:字符串"a"情况下(N=1),所需要操作为直接输出。字符串"ab"情况下(N=2),可以将'a'作为首位,对"b&qu原创 2018-05-02 20:32:27 · 178 阅读 · 0 评论 -
递归问题研究——汉诺塔(一)
首先,先来看一下最简单的汉诺塔问题:有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置N个金盘。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。当N=1时,移动步骤为A→C,记为。当N=2时,移动步骤为A→B,A→C,B→C,记为,即2片金盘通...原创 2018-04-25 10:37:21 · 274 阅读 · 0 评论 -
递归问题研究——汉诺塔(二)
4柱汉诺塔问题(hdoj-1207):有四根杆(编号A、B、C、D),在A杆自下而上、由大到小按顺序放置N个金盘。游戏的目标:把A杆上的金盘全部移到D杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中四根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C、D任一杆上。在初看这道题目的时候,我们发现4柱汉诺塔问题和3柱汉诺塔问题基本相似。那么我们是否可以通过...原创 2018-04-27 21:57:14 · 389 阅读 · 0 评论 -
递归问题研究——汉诺塔(三)
相邻移动汉诺塔(hdoj-2064):现在我们改变游戏的玩法,不允许直接从最左(右)边移到最右(左)边(每次移动一定是移到中间杆或从中间移出),也不允许大盘放到下盘的上面。现在有N个圆盘,至少多少次移动才能把这些圆盘从最左边移到最右边?这个题目和之前的汉诺塔问题相比最大的区别就是无法直接实现将圆盘直接从A柱移动至C柱,而是需要从A柱移动至B柱,再从B柱移动至C柱。那么我们需要重新考虑移动方式,我们...原创 2018-04-28 20:56:02 · 407 阅读 · 0 评论 -
通过位运算实现数值交换
对于数值的交换操作,通常会采用第三个变量作为中间变量过渡的交换方式。temp=a;a=b;b=temp;使用这种方法,可以保证交换的准确性,但是由于会使用第三个变量,占用了额外的内存空间。那么有没有办法不借助第三个变量实现两个数值的交换呢?可以通过数值相加寄存和位运算两种方式。1、相加寄存:可以将sum=a+b的值暂时寄存到a变量上,由于a=sum-b,所以可以将a值放置到b上,又由于b=su...原创 2018-06-04 19:47:08 · 8495 阅读 · 14 评论 -
递归问题研究——八皇后
八皇后问题是一个基本的递归问题:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。对于递归问题的解决,应该考虑递归的基本(终止递归)条件和递归条件。可以想到本问题的基本条件应该是在前n-1行排序完毕后,对第n行排序检测是否存在冲突。递归条件为将新的排好序的状态传递给上一层递归。在考虑递归前,应先编写冲突检测函数,以方便...原创 2018-07-31 16:02:04 · 212 阅读 · 0 评论