2013年10月24日
摘要: 题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。思路:可能很多人写过判断一个字符串是不是对称函数,这个题目可以看成是该函数的加强版。首先想到的就是遍历,暂且先不考虑效率问题。判断一个字符串是不是对称的函数,可以用这个字函数逐一检查原字符串中所有的子字符串,然后输出长度最大的即可。怎样判断一个字符串是不是对称的字符串?-->可以用两个指针分别指向字符串的第一个字符和最后一个字符,判断是否相等,如果不相等直接返回false,如果为真则接着比较下 一对字符。如何遍历原字符串的所有字串?首先 阅读全文
posted @ 2013-10-24 20:02 猿人谷 阅读(1569) 评论(0) 推荐(0)
摘要: 回文串就是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。回文子串,顾名思义,即字符串中满足回文性质的子串。比如输入字符串 "google”,由于该字符串里最长的对称子字符串是 "goog”,因此输出4。1.问题解决的基本方法分析:可能很多人都写过判断一个字符串是不是对称的函数,这个题目可以看成是该函数的加强版。要判断一个字符串是不是对称的,不是一件很难的事情。我们可以先得到字符串首尾两个字符,判断是不是相等。如果不相等,那该字符串肯定不是对称的。否则我们接着判断里面的两个字符是不是相等,以此类推。#includeusing namespac 阅读全文
posted @ 2013-10-24 20:00 猿人谷 阅读(35824) 评论(0) 推荐(4)
摘要: 最新文章可以参看:https://yuanrengu.com/2020/77eef79f.html 笔试题中经常会遇到这个问题:如果tcp建立连接时第三次握手失败,tcp会做何操作?该问题的本质是判断我们对tcp的状态转换是否能有比较深刻的理解。只要理解了下面的状态转换图,很容易回答上述问题。 在此 阅读全文
posted @ 2013-10-24 16:55 猿人谷 阅读(16491) 评论(5) 推荐(2)
摘要: 1.判断一个自然数是否是某个数的平方?(其实就是判断这个数一定是奇数相加的)由于(n+1)^2=n^2 + 2n + 1,= ...= 1 + (2*1 + 1) + (2*2 + 1) + ... + (2*n + 1)注意到这些项构成了等差数列(每项之间相差2)。所以我们可以比较 N-1, N - 1 - 3, N - 1 - 3 - 5 ... 和0的关系。如果大于0,则继续减;如果等于0,则成功退出;如果小于 0,则失败退出。复杂度为O(n^0.5)。不过方法3中利用加减法替换掉了方法1中的乘法,所以速度会更快些。例如:3^2 = 9 = 1 + 2*1+1 + 2*2+1 = 1 + 阅读全文
posted @ 2013-10-24 16:45 猿人谷 阅读(477) 评论(0) 推荐(0)
摘要: 题目:1*2*3*……*100 求结果末尾有多少个零分析:一般类似的题目都会蕴含某种规律或简便方法的,阶乘末尾一个零表示一个进位,则相当于乘以10而10 是由2*5所得,在1~100当中,可以产生10的有:0 2 4 5 6 8 结尾的数字,显然2是足够的,因为4、6、8当中都含有因子2,所以都可看当是2,那么关键在于5的数量了那么该问题的实质是要求出1~100含有多少个5由特殊推广到一般的论证过程可得: 1、 每隔5个,会产生一个0,比如 5, 10 ,15,20.。。 2 、每隔 5×5 个会多产生出一个0,比如 25,50,75,100 3 、每隔 5×5× 阅读全文
posted @ 2013-10-24 16:15 猿人谷 阅读(10507) 评论(0) 推荐(3)
摘要: 题目:输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。解析:如果数组是无序的,先排序(n*logn),然后用两个指针i,j,各自指向数组的首尾两端,令i=0,j=n-1,然后i++,j--,逐次判断 a[i]+a[j]?=sum,如果某一刻a[i]+a[j]>sum,则要想办法让sum的值减小,所以此刻i不动,j--,如果某一刻 a[i]+a[j] behind) { long l... 阅读全文
posted @ 2013-10-24 14:31 猿人谷 阅读(1465) 评论(0) 推荐(0)