• 算法:(五)字符串


    (一)字符串题目的特点

    ①广泛性

    • 字符串可以看作字符类型的数组,与数组的排序、查找、调整有关
    • 很多其他类型的题可看作字符串类型的题

    ②需要掌握的概念

    • 回文
    • 子串(连续)
    • 子序列(不连续)
    • 前缀树(Trie树)
    • 后缀树和后缀数组
    • 匹配
    • 字典序

    ③需要掌握的操作

    • 与数组有关的操作:增删改查
    • 字符的替换
    • 字符串的旋转

    (二)字符串题目的常见类型

    ①规则判断

    • 判断字符串是否符合整数规则
    • 判断字符串是否符合浮点数规则
    • 判断字符串是否符合回文字符串规则

    ②数字运算

    • int和long类型表达整数范围有限所以经常用字符串实现大整数,与大整数相关的加减乘除操作,需要模拟笔算的过程

    ③与数组操作有关的类型

    • 数组有关的调整、排序等操作
    • 快速排序的划分过程要掌握和改写

    ④字符计数

    • 哈希表
    • 固定长度的数组(C/C++256长度,JAVA65536长度)
    • 滑动窗口问题、寻找无重复字符子串问题、计算变位词问题

    ⑤动态规划类型

    • 最长公共子串
    • 最长公共子序列
    • 最长回文子串
    • 最长回文子序列

    ⑥搜索类型

    • 深度优先搜索
    • 宽度优先搜索

    ⑦高级算法与数据结构解决的问题

    • Manacher算法解决最长回文子串问题
    • KMP算法解决字符串匹配问题
    • 前缀树结构
    • 后缀树和后缀数组
  • 相关阅读:
    bzoj3994:[SDOI2015]约数个数和
    数列分块1-9
    luogu P2059 [JLOI2013]卡牌游戏
    luogu P1623 [CEOI2007]树的匹配Treasury
    博弈论与SG函数
    luogu P1169 [ZJOI2007]棋盘制作
    luogu P1623 [CEOI2007]树的匹配Treasury
    [BZOJ4896][THUSC2016]补退选(Trie)
    [BZOJ3745][COCI2015]Norma(分治)
    [BZOJ5006][LOJ#2290][THUWC2017]随机二分图(概率+状压DP)
  • 原文地址:https://www.cnblogs.com/M-M-Monica/p/10122569.html
Copyright © 2020-2023  润新知