题目: 给定一组单词,找出其中的最长单词,且该单词由这组单词中的其他单词组成。 思路: 首选将单词按照字符串大小从大到小排序,然后依次判断该单词是否由其他单词组成。 将单词保存在散列表中,这样容易查找。 判断单词组成:依…
(剑指Offer)面试题9:斐波那契数列
题目: 现在要求输入一个整数n,请你输出斐波那契数列的第n项。 斐波那契数列的定义: f(0)=0;f(1)=1; f(n)=f(n-1)+f(n-2) 思路: 1、递归: 根据递推公式来实现 优点:代码简单,易懂 缺点…
(算法)两个单词的最短距离
题目: 有个内含单词的超大文本,给定任意两个单词,找出这个文件中两个单词的最短距离。 思路: 通过两个两个变量来记录两个单词最后出现的位置,然后每次计算两者的距离,并更新最小距离。 假设需要重复查找任意两个单词的最短距离…
(算法)整数转汉字描述
题目: 给定一个整数,打印该整数的汉字描述。(例如:11001:“一万一千零一”) 思路: 按照以下位数来转换: 亿级 万级 千及千以下 代码: 由于编程环境不支持中文,故以拼音代替,若需转为汉字,只需改为对应汉字并将代…
(LeetCode 72)Edit Distance
Given two words word1 and word2, find the minimum number of steps required to convert word…
(算法)整数转英文描述
题目: 给定一个整数,打印该整数的英文描述。(例如:“One Thousand, Two Hundred Thirty Four”) 思路: 每三位转换一次,在适当位置插入million,thousand。即: conv…
(算法)最长不重复子串
题目: 从一个字符串中找到一个连续子串,该子串中任何两个字符不能相同,求子串的最大长度并输出一条最长不重复子串。 思路: 利用hash表hashTable[256]来保存出现过的字符,然后从头开始遍历字符串, 1、如果当…
(LeetCode 53)Maximum Subarray
Find the contiguous subarray within an array (containing at least one number) which has the largest sum. For e…
(算法-字符串)最长对称子串
题目: 输入字符串中对称的子字符串的最大长度。比如输入字符串“roorle”,由于该字符串里最长的对称子字符串是“roor”,因此输出4. 思路: 1、求字符串”roorle“和反序”elroor“的最长公共子串 2、最…
(LeetCode 64)Minimum Path Sum
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom r…
(算法)交错的字符串
题目: 给定三个字符串A, B, C,判断C是否由A和B交错构成。交错构成的意思是,对于字符串C,可以将其每个字符标记为A类或B类,使得我A类的每个字符顺序构成了A字符串,B类的每个字符顺序构成了B字符串。如:对于A=”…
(算法)最长回文子串
题目: 求一个字符串的最长回文子串 思路: 1、暴力枚举 最容易想到的就是暴力破解,列举每一个子串,然后根据回文的定义判断是不是回文,找到最长的那个。 求每一个子串的时间复杂度为O(N^2),判断子串是不是回文的时间复杂…