当前位置: 首页 > 知识库问答 >
问题:

如何编写接受字符串并返回最长有效子字符串的方法

梁盛
2023-03-14

我一直在和一个朋友练习面试问题,他把他编的这道题扔给我:

给定一个方法来告诉您一个字符串是否有效,请编写一个方法来获取一个字符串,并返回最长的有效子字符串(而不对字符重新排序)。

>

  • 检查输入字符串

    检查inputstring的所有子集,使用length==inputstring length-1

    以此类推,直到检查所有长度为1的子集,然后返回false

    但不幸的是,我很难理解。

    最好的解决方案是在所有子集中进行深度优先的递归迭代,并从那里返回最长的有效字符串吗?

  • 共有1个答案

    符献
    2023-03-14
    string in
    
    for int sub_len in len(in) , 1 //length of the substring must be smaller than/equal to
                                   //the length of the input and atleast 1
        for int sub_offset in 0 , len(in) - sub_len
                                   //the offset of the string must be in [0 , n]
                                   //where n is the number of characters that are not in the
                                   //substring
             string sub = substring(in , sub_offset , sub_len)
    
             if isValid(sub)
                  return sub
    

    这将为给定输入生成所有可能的子字符串(中的),并返回第一个/最长的有效子字符串。

     类似资料:
    • 我如何在O(N**2)个时间内完成它?

    • GETRANGE key start end 返回key 中字符串值的子字符串,字符串的截取范围由start 和end 两个偏移量决定(包括start 和end 在内)。可以使用负值,字符串右面下标是从-1开始的。 注意返回值处理: 1: start>=length, 则返回空字符串 2: stop>=length,则截取至字符结尾 3: 如果start 所处位置在stop右边, 返回空字符串

    • 我有一个使用函数的string参数并传递给返回最长单词的函数的代码。 我想知道是否可以使用,然后使用索引访问每个字母表,这样我就可以知道字符串中有多少个单词,然后比较它们,这样我就可以返回最长的单词。 我是这样开始的。它与典型数组很好地工作,但典型数组需要预定义的大小。

    • 005.Longest Palindromic [M] 题目 Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic subst

    • 问题内容: 我有: 功能: 和一个字符串:, 我本质上是想输入并返回,但是我却不断地返回。 码: 不知道怎么了! 问题答案: 理想情况下,您会 像痴呆的刺猬说的那样 使用 str.find 或 str.index 。但是你说你不能… 您的问题是您的代码仅搜索搜索字符串的第一个字符(第一个字符在索引2)。 您基本上是说if是in ,递增直到我测试它返回3时,但这仍然是错误的。这是一种方法。 它产生了

    • 我已经解决了寻找最长回文子字符串的问题,但这是不同的。给定一个像“ababa”这样的字符串,所有前缀的最长回文子字符串的长度如下所示- “a”:“a”(长度1) “ab”:“a”或“b”(长度1) “aba”:“aba”(长度3) “abab”:“aba”或“bab”(长度3) “亚贝巴”:“亚贝巴”(长度5) null null 我们只需要长度,而不是实际的回文。有没有更容易/更好(就运行时复杂