给定一个字符串和一个非空子字符串,递归计算以该子字符串开始和结束的最大子字符串,并返回其长度。
我所做的没有返回正确的长度。但是因为我保存了所有可能的子字符串,所以我可以确定长度。时间复杂度应该是线性的:O(n)。
这是我尝试过的:
public class StringPatternMatcher {
static String[] array = new String[10];
static int n = 0;
public static int findSubString ( String s, String pat) {
if ( s.length() < pat.length() ) {
return 0;
}
else {
return s.indexOf(pat);
}
}
public static int findMaxSubstring ( String s, String pat) {
if ( s.length() < pat.length() ) {
return 0;
}
else if ( s.startsWith(pat, 0)){
int idx = findSubString( s.substring(pat.length()), pat );
if ( idx == -1 || idx == 0 ) {
return -1;
}
array[n++] = s.substring(pat.length(), pat.length() + idx);
return findMaxSubstring( s.substring(pat.length()), pat);
}
else {
return 1 + findMaxSubstring( s.substring(1), pat);
}
}
public static void main(String[] args) {
String s = "catwomencatwhiskerscat";
System.out.println("Count is : " + findMaxSubstring( s, "cat"));
for ( String str : array) {
if (str != null )
System.out.println("The string is:" + str + " and it's len is: " + str.length());
}
}
}
如果你想要一个线性的复杂度,你不能使用循环。在这种情况下,你可以遵循的算法;
1-查找第一个事件
2-查找最后一个事件(通过反转字符串和模式,然后执行相同的步骤1)
3-查找最后一个事件的真实索引(通过从实际字符串的长度中减去步骤2的结果)
4-检查结果是否有效(如果结果(步骤3)-结果(步骤1)>0,则其有效)
问题内容: 我有: 功能: 和一个字符串:, 我本质上是想输入并返回,但是我却不断地返回。 码: 不知道怎么了! 问题答案: 理想情况下,您会 像痴呆的刺猬说的那样 使用 str.find 或 str.index 。但是你说你不能… 您的问题是您的代码仅搜索搜索字符串的第一个字符(第一个字符在索引2)。 您基本上是说if是in ,递增直到我测试它返回3时,但这仍然是错误的。这是一种方法。 它产生了
GETRANGE key start end 返回key 中字符串值的子字符串,字符串的截取范围由start 和end 两个偏移量决定(包括start 和end 在内)。可以使用负值,字符串右面下标是从-1开始的。 注意返回值处理: 1: start>=length, 则返回空字符串 2: stop>=length,则截取至字符结尾 3: 如果start 所处位置在stop右边, 返回空字符串
我如何在O(N**2)个时间内完成它?
例如,我们有一个字符串:asd/asd/asd/1#s_ 我需要匹配以下部分:/asd/1#s_或asd/1#s_如何使用普通正则表达式? 我试过像这样的消极前瞻,但它不起作用 它匹配这个“前缀/asd/1#s_”,我需要匹配“/asd/1#s_”中的这个“/asd/1#”,我需要匹配“/asd/1#s_”,而没有所有前面的 /asd/'s 匹配应该与普通正则表达式没有任何编程语言的任何帮助函数h
我有一个逗号分层的字符串,当调用时,它返回大约60的数组大小。在特定的用例中,我只需要从数组中返回第二个值的值。例如,
rank ▲ ✰ vote url 43 465 86 790 url 获得一个字符串的子串 有什么方法获得一个字符串的字串,比如从一个字符串的第三个字符到最后. 可能是myString[2:end]? >>> x = "Hello World!" >>> x[2:] 'llo World!' >>> x[:2] 'He' >>> x[:-2] 'Hello Worl' >>> x[-2:] 'd