字符串

来源:互联网 发布:mac截图不在桌面 编辑:程序博客网 时间:2024/06/07 14:52

本文为牛客网学习直通BAT算法精讲,大家可以作为课件使用

字符串笔试面试技巧

特点

1,广泛性

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

  (2),很多其他类型的面试题可以看做字符串类型的面试题。

注意:用Java实现字符串类型题目是,String是不可修改的,要掌握StringBuffer,StringBuilder类,和toCharArray方法。

2,需要掌握的概念

  (1)回文

  (2)子串(连续)

  (3)子序列(不连续)

  (4)前缀树(Trie树)

  (5)后缀树和后缀数组

  (6)匹配

  (7)字典序

 3,需要掌握的操作

  (1)与数组有关的操作:增删改查

  (2)子符的替换)

  (3)字符串的旋转

 4,字符串题目的常见类型

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

    数字运算:int和long类型表达整数范围有限所以经常用字符串实现大整数

              与大整数相关的加减乘除操作,需要模拟笔算的过程

    与数组操作有关的类型:数组有关的调整,排序等操作;快速排序的划分过程需要掌握和改写

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

5,动态规划问题

    最长公共子串;最长公共子序列;最长回文子串;最长回文子序列.......

6, 搜索类型

    深度优先搜索;广度优先搜索

    例如:str1,str2,str1每次只能变换一个字符,怎么才能完全变成str2,打印变换轨迹;

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

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

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

  (3)前缀树结构

  (4)后缀树和后缀数组

  (5)较难,一般较少出现,代码实现较困难

例一:

思路一:


思路二:


例二:


思路:


例三:


思路:



例四:


思路:


例五:


思路:


例六:


思路:



例七:


思路:




例八:


思路:


 


原创粉丝点击