最长字串问题,python实现

这篇博客的目的是为了提醒自己,以后笔试一定得及时交啊?!!!!

阿里笔试的最后一个题,我顺手就写python实现,代码如下,不知道对不对,反正当时好几个数据都过了。

不过,反正没交上去,那个题填代码的地方是空的,对错都没用了。先记下,改天细究:

def largest_common(query, text, is_first_same):
    if (len(query) == 0 or len(text) == 0):
        return 0
    else:
        a = query[0]
        b = text[0]
        if is_first_same:
            if (a == b):
                first_same_l = largest_common(query[1:], text[1:],True)+1
            else:
                first_same_l = 0
            first_diff_l = max(largest_common(query[1:], text[0:],False), largest_common(query[0:],text[1:],False))
        else:
            if (a == b):
                first_same_l = largest_common(query[1:], text[1:],True)
            else:
                first_same_l = 0
            first_diff_l = max(largest_common(query[1:], text[0:],False), largest_common(query[0:],text[1:],False))
        if first_same_l > first_diff_l :
            return first_same_l
        else:
            return first_diff_l                      

if  __name__ =='__main__':
    a = "acbac"
    b = "accbaccbabb"
    print largest_common(a, b, True)
时间: 2024-10-25 05:11:54

最长字串问题,python实现的相关文章

leetcode无重复字符的最长字串 python实现

无重复字符的最长字串是一道字符串处理算法的题目,在日常编程中,处理字符串是常见任务.用Python来实现leetcode这道算法题,该题目会涉及到一个概念"滑动窗口". 一.题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度(Longest substring without repeating characters). 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所

九度1535 重叠的最长字串 字符串哈希

题目描述: 给定两个字符串,求它们前后重叠的最长子串的长度,比如"abcde"和"cdefg"是"cde",长度为3. 输入: 输入可能包含多个测试案例. 对于每个测试案例只有一行, 包含两个字符串.字符串长度不超过1000000,仅包含字符'a'-'z'. 输出: 对应每个测试案例,输出它们前后重叠的最长子串的长度. 样例输入: abcde cdefg 样例输出: 3 #include <iostream> #include <

leetcode Longest Common Prefix 多个字符串的最长字串

1 public class Solution { 2 public String get(String a,String b) 3 { 4 5 if(a==""||b=="") return ""; 6 int len1=a.length(); 7 int len2=b.length(); 8 int len=len1; 9 if(len>=len2) len=len2; 10 String s=""; 11 for(

编程练习:无重复字符的最长字串

题目LeetCode-无重复字符的最长字串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例1 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3. 示例2 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1. 分析与实现 解法一 分析 这里面的难度在于,从i开始遍历,遇到相同字符后结束,记录长度.然后从

无重复字符的最长字串问题

leetcode3:无重复字符的最长字串问题 问题描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3.示例 2: 输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1.示例 3: 输入: "pwwkew"输出: 3 这道题,我自己的

[leetcode]3无重复字符的最长字串

本题思路较清楚,通过一个数组记录各个位置所能够引导的最长字符串的长度即可. 稍微有一点难度在于如何向前寻找时判断已经出现了重复字符串,我采用的思路为只有当前项的长度等于当前长度时,认为尚未出现重复字符串,并更新前项长度++. 1 int max=0; 2 int st[100000]={0};//表示以它为开头的最长不重复字串长度 3 int i=0; 4 char p; 5 while(s[i]!='\0') 6 { 7 p=s[i]; 8 st[i]=1; 9 max=st[i]; 10 f

【leetcode算法-中等】3. 无重复字符的最长字串

[题目描述] 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3.示例 2: 输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1.示例 3: 输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke&qu

动态规划--求最大连续子数组的和(Python实现)&amp;求解最大连续乘积字串(Python实现)

def MaxSum(self,array,n): sum=array[0] result=array[0] for i in range(0,n): if sum<0: sum=a[i] else: sum=sum+a[i] start1=i if sum>result: result=sum end=i start=start1 print result,start,end 上述采用的是动态规划思想:假设sum[i]表示以第i个元素结尾的最大连续字串,那么sum[i]=max{sum[i-

无重复字符的最长字串

题目描述: 给定一个字符串,找出不含有重复字符的最长子串的长度. 示例: 给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3. 给定 "bbbbb" ,最长的子串就是 "b" ,长度是1. 给定 "pwwkew" ,最长子串是 "wke" ,长度是3.请注意答案必须是一个子串,"pwke" 是 子序列 而不是子串 思路: 假设字符串为