目标字符串abba,模式串aa,朴素匹配算法判断匹配不成功需要几次
时间: 2023-05-26 19:07:27 浏览: 299
朴素匹配算法的匹配过程是从目标字符串的第一个字符开始,逐个字符与模式串进行比较。在本例中,第一个字符是a,在模式串中也是a,匹配成功,继续比较下一个字符。第二个字符是b,在模式串中是a,匹配不成功。此时,需要把模式串向右移动一位,从第二个字符a开始再次比较。如此反复,直到匹配成功或者目标字符串遍历完毕。
因此,在本例中,需要进行4次比较才能判断匹配不成功。
相关问题
java 字符串匹配abba_字符串匹配模式问题
对于字符串匹配的问题,Java中常用的方法是使用正则表达式或者使用String类的相关方法。下面是一个使用正则表达式的示例代码来实现字符串模式匹配(找到字符串中是否存在指定的模式):
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringPatternMatch {
public static boolean patternMatch(String s, String pattern) {
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(s);
return m.find();
}
public static void main(String[] args) {
String s = "abba";
String pattern = "abba";
boolean isMatch = patternMatch(s, pattern);
System.out.println(isMatch); // 输出:true
}
}
```
有一个字符串strA和字符串strB,判断strB是否与strA匹配,匹配代表字符串 strB中的单词与strA中的字符--对应,字符串只包含小写字符,strB中的单词 用空格隔开 例如:strA = "abba",strB = "i am am i" 匹配 strA = "abbc", strB = "i am am student"匹配 strA = "abba",strB = "i i i i "不匹配
这是一个字符串匹配问题,可以通过以下步骤进行解决:
1. 将字符串strB按空格进行分割,得到单词列表words;
2. 如果words的长度与strA的长度不相等,则不匹配;
3. 遍历words列表,对于每个单词word,判断其与strA中对应位置的字符是否相等;
4. 如果有任意一个word与对应位置的字符不相等,则不匹配;
5. 如果所有的word都与对应位置的字符相等,则匹配。
下面是Python代码实现:
```python
def match(strA, strB):
words = strB.split()
if len(words) != len(strA):
return False
for i in range(len(words)):
if words[i][0] != strA[i] or words[i][-1] != strA[i]:
return False
return True
```
可以使用该函数来判断给定的字符串是否匹配,例如:
```python
>>> match("abba", "i am am i")
True
>>> match("abbc", "i am am student")
True
>>> match("abba", "i i i i")
False
```
阅读全文