Skip to content

Latest commit

 

History

History
 
 

README.md

学习笔记 第十周

第10周 第20课 | 字符串算法

1.字符串基础知识和引申题目

字符串的可变性

注意:Java和Python中的字符串是 Immutable(不可变)的 字符串在哪些语言中是可变的,哪些语言中是不可变的呢?

  • JavaC#JavaScriptPythonGo, String是不可变的。
  • RubyPHP中,String是可变的
  • C中没有这种的String类型,用字符数组表示字符串,C++有String类,但是默认是可变的,如果想要一个不可变的字符串,需要加入const关键字
  • Swift中,string是可变的,但是你可以通过let关键字使其变为不可变字符串。
遍历字符串

Python

for ch in "abbc":
    print(ch)
String x = "abbc";
for(int i = 0; i < x.length(); i++) {
    char ch = x.charAt(i);    
}
for ch in x.toCharArray() {
    
}
相关题目
  1. 字符串中的第一个唯一字符
  2. 字符串转换整数
  3. 最长公共前缀
  4. 反转字符串
  5. 翻转字符串里的单词
  6. 找到字符串中所有字母异位词
  7. 最长回文子串

2.高级字符串算法

最长子串、子序列问题
  1. 编辑距离
  2. 最长公共子序列
  3. 最长回文子串 最长回文子串的枚举中心位置解法。
  4. 正则表达式匹配

3.字符串匹配算法

  1. 暴力法(brute force)
  2. Rabin-Karp 算法
  3. KMP 算法

了解
Boyer-Moore 算法
Sunday 算法