标签: substring

C++ string :: find复杂性

为什么c ++的实现string::find()不使用KMP算法(并且不运行O(N + M))并运行O(N * M)?这是在C++ 0x中纠正的吗?如果当前查找的复杂性不是O(N * M),那是什么?

PS:对不起,我的意思是 O(N * M)

那么在gcc中实现了什么算法?是KMP吗?如果没有,为什么?我测试了它,运行时间表明它运行了string::find()

c++ string algorithm substring time-complexity

17
推荐指数
3
解决办法
2万
查看次数

这段代码怎么可能:"ArgumentOutOfRangeException:startIndex不能大于字符串的长度"?

我的C#代码中有以下方法:

/// <summary>
/// Removes the first (leftmost) occurence of a <paramref name="substring"/> from a <paramref name="string"/>.
/// </summary>
/// <param name="string">The string to remove the <paramref name="substring"/> from. Cannot be <c>null</c>.</param>
/// <param name="substring">The substring to look for and remove from the <paramref name="string"/>. Cannot be <c>null</c>.</param>
/// <returns>
/// The rest of the <paramref name="string"/>, after the first (leftmost) occurence of the <paramref name="substring"/> in it (if any) has been removed.
/// </returns>
/// <remarks>
/// <list type="bullet"> …
Run Code Online (Sandbox Code Playgroud)

.net c# debugging substring exception

17
推荐指数
1
解决办法
3165
查看次数

swift 3获取子字符串的起始索引(作为int)

我想获得字符串中子字符串的开始和结束位置.示例:在字符串"嗨,这是我的名字"; 如果我提供字符串"this",我想知道起始索引是4,结束索引是7.

我发现了几个链接,包括这个链接:

Swift:获取字符串 a-substring-in-a-string中子字符串的起始索引

但它在swift 3中不起作用,因为该方法现在称为范围.

我现在用这个:

let range = mystring.range(of: "StringSearch")?.lowerBound
Run Code Online (Sandbox Code Playgroud)

返回此

Swift.String.UnicodeScalarView.Index(_position: 15), _countUTF16: 1))
Run Code Online (Sandbox Code Playgroud)

我无法获得整数的位置,因为这是一个索引.

总之,我想在一个int类型的变量中使用位置,在本例中为15.

谁能帮我?

感谢大家.

indexing substring swift swift3

17
推荐指数
1
解决办法
1万
查看次数

搜索字符串中未知模式的最有效方法是什么?

我试图找到以下模式:

  • 发生不止一次
  • 长度超过1个字符
  • 不是任何其他已知模式的子串

不知道可能发生的任何模式.

例如:

  • 字符串"男孩倒在钟楼"将返回'ell', 'the b', 'y '.
  • 字符串"男孩倒在钟楼上,男孩倒在钟楼旁边"会回来'the boy fell by the bell'.

使用双for循环,它可以非常低效地强制使用:

ArrayList<String> patternsList = new ArrayList<>();
int length = string.length();
for (int i = 0; i < length; i++) {
    int limit = (length - i) / 2;
    for (int j = limit; j >= 1; j--) {
        int candidateEndIndex = i + j;
        String candidate = string.substring(i, candidateEndIndex);

        if(candidate.length() <= 1) {
            continue;
        }

        if (string.substring(candidateEndIndex).contains(candidate)) …
Run Code Online (Sandbox Code Playgroud)

java algorithm substring

17
推荐指数
2
解决办法
948
查看次数

用于检查字符串是否是从子字符串列表构建的算法

给你一个字符串和一个字符串数组.如何快速检查,如果这个字符串可以通过连接数组中的一些字符串来构建?

这是一个理论问题,出于实际原因我不需要它.但我想知道,如果有一些好的算法.

编辑 阅读一些我已经注意到的答案,这可能是NP-Complete问题.即使找到字符串的子集,它们将具有相同的长度,作为给定的字符串也是经典的子集求和问题.

所以我想这没有简单的答案.

编辑

现在看来,它毕竟不是NP-Complete问题.那更酷:-)

编辑

我想出了一个通过一些测试的解决方案:

def can_build_from_substrings(string, substrings):
    prefixes = [True] + [False] * (len(string) - 1)
    while True:
        old = list(prefixes)
        for s in substrings:
            for index, is_set in enumerate(prefixes):
                if is_set and string[index:].startswith(s):
                    if string[index:] == s:
                        return True
                    prefixes[index + len(s)] = True
        if old == prefixes: # nothing has changed in this iteration
            return False
Run Code Online (Sandbox Code Playgroud)

我相信时间是O(n * m^3),n长度substringsm长度在哪里string.你怎么看?

string algorithm substring

16
推荐指数
1
解决办法
2154
查看次数

如何使用shell脚本删除子字符串

我有字符串叫:

abc.out
def.out
Run Code Online (Sandbox Code Playgroud)

如何删除子字符串

.OUT

在这些字符串?

我应该使用什么命令?(伯恩贝壳)

shell substring

16
推荐指数
4
解决办法
5万
查看次数

来自NSString的子串

我正在使用NSString,我想得到一个包含我的字符串的前20个字符的子字符串.我怎样才能做到这一点?

substring nsstring ios

16
推荐指数
2
解决办法
5万
查看次数

检测字符串是否包含多个单词的更好方法

你好伙伴们!我正在尝试创建一个程序,以尽可能快地检测字符串中是否有多个单词,如果是,则执行一个行为.最好,我希望它能够检测这些单词的顺序,但只有这样才能快速完成.到目前为止,这就是我所做的:

if (input.contains("adsf") && input.contains("qwer")) {
    execute();          
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,为多个单词执行此操作会变得很烦人.这是唯一的方法还是有更好的方法来检测多个子串?有没有办法检测订单?

java string substring contains

16
推荐指数
3
解决办法
5万
查看次数

如何在Swift字符串中找到最后一个子字符串?

在Objective-C我用过:

[@"abc def ghi abc def ghi" rangeOfString:@"c" options:NSBackwardsSearch];
Run Code Online (Sandbox Code Playgroud)

但现在NSBackWardsSearch似乎不存在.任何人都可以提供Swift的等效代码吗?

如果可能的话,我希望能够在整个字符串中找到字符编号.所以在上面的例子中它将返回3.

string substring swift

16
推荐指数
3
解决办法
1万
查看次数

替换string中第n次出现的子串

我想替换字符串中第n个子串的出现.

必须有一些与我想做的事情相同的东西

mystring.replace("substring", 2nd)

实现这一目标的最简单,最恐怖的方法是什么?

为什么不重复:我不想使用正则表达式这种方法,我发现的类似问题的大多数答案只是正则表达式剥离或真正复杂的功能.我真的希望尽可能简单而不是正则表达式解决方案.

python string replace substring

16
推荐指数
2
解决办法
1万
查看次数