• 《大话数据结构》--- 第五章 串


    串是由零个或多个字符组成的有限序列,幽冥教字符串。一般记作 a = "aaaaaa";串中的字符数目n称为串的长度。零个字符的串称为空串。

     
    空格串是只包含空格的串。空格串有内容有长度。
    串中任意个数的连续字符组成的子序列称为该串的子串。包含子串的串称为主串。
    子串在住串中的位置就是子串的第一个字符在主串中的序号。
     
    串可以比较大小。串的比较是通过串的字符之间的编码比较的。即ASCII码。
    子串的定位操作通常称为串的模式匹配。
     
    KMP模式匹配算法。
    简单理解。比较a串中是否有b串。匹配中找到a串与b串相等的字符。本次匹配结束后如果不成功,那么a串中这个字符与到匹配失败字符中间的这段距离是不需要遍历的。在一个串中有相同字符时,需要考虑到一个数组next的。即相同字符的下标差值存储的数组。
    abcabx
    当 n = 1时, next[1] = 0;
    n = 2时,next[2] = 1;
    n = 3时,next[3] = 1;
    n = 4时,next[4] = 1;
    n = 5时,存储前4个字符的串中,前缀字符与后缀字符相等,前缀字符与后缀字符中间包含了两个字符,所以next[5] = 2;
    上一个差值也可能是一个之前相同的小串与小串的距离
    n = 6时,由于前缀字符与前缀字符的后一个字符和后缀字符与后缀字符的前一个字符相等,所以差值+1,next[6] = 3;
     
    本算法需要开单章详细理解。
  • 相关阅读:
    AJAX 验证用户名是否存在
    字符串变量中保存路径
    hdu Kaitou Kid The Phantom Thief (2)
    hdu 连连看
    hdu Sequence one
    hdu Sticks
    hdu Nightmare
    hdu Sudoku Killer
    hdu Dota all stars
    hdu Remainder
  • 原文地址:https://www.cnblogs.com/colve/p/5125503.html
Copyright © 2020-2023  润新知