算法编程题-字符串类型题目

1.介绍

在笔试面试中,字符串类型题目相当广泛,原因有一下几点:

1.字符串可以看做是字符类型的数组,与数组的排序、查找、调整有关

2.很多其他类型的题目最终可能会转化成字符串类型的题目

2.需要掌握的几个概念

1.回文

2.子串(连续)

3.子序列(不连续)

4.前缀树(Trie树)

5.后缀树和后缀数组

6.匹配

7.字典序

3.字符串题目常见类型

1.规则判断

判断字符串是否符合整数规则

判断字符串是否符合浮点数规则

判断字符串是否符合回文字符串规则

2.数字运算

int和long类型表达的整数范围有限,所以经常使用字符串来实现大整数,实现与大整数相关的运算

3.与数组操作有关的类型

数组有关的调整、排序等操作

快速排序的划分过程需要掌握和改写

4.字符计数

解决方案:哈希表、固定长度的数组(c/c++ 256长度、java中65536长度)

相关其他问题:滑动窗口问题、寻找无重复字符子串问题、计算变位词问题等

5.动态规划问题

最长公共子串

最长公共子序列

最长回文子串

最长回文子序列等

6.搜索类型

宽度优先搜索

深度优先搜索

比如:给定两个被打乱的字符串A和B,每次只能交换一次字符,如何把A变成B,打印这种变换轨迹

7.高级算法和数据结构解决的问题

Manacher算法解决最长回文子串问题

KMP算法解决字符串匹配问题

前缀树结构

后缀树和后缀数组

通常面试中很少出现,因为当场事先比较复杂

    原文作者:五癫
    原文地址: https://blog.csdn.net/tiankong_/article/details/76675888
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞