字符串

字符串

1、异或运算符

1、这里可以用异或运算符来代替temp进行交换的操作

2、例子

①异或运算符

while(start<end){
    ch[start] ^= ch[end];
    ch[end] ^= ch[start];
    ch[start] ^= ch[end];
    start++;
    end--;
}

②普通写法

while(start<end){
    char temp = ch[start];
    ch[start] = ch[end];
    ch[end] = temp;
    start++;
    end--;
}

2、setCharAt方法和CharAt方法

1、charAt(xx)

1、就是切割xx脚标的字符串

2、setCharAt(int index ,char ch)

1、就是修改指定脚标的字符为ch

2、是输出全部,只相当于是修改

3、KMP算法

1、作用

1、就是字符串匹配的问题

2、例如给一个字符串str,再给一个目标字符串。求目标字符串在str字符串中的首个位置、或者是否匹配。

2、前缀表(是查目标字符串)

1、作用:就是如果第一次匹配失败,需要回退。这个表里记录着回退到哪一步。

2、怎么计算前缀表的内容:需要知道前缀和后缀

①前缀:就是包含字符串第一个字母,不包含字符串最后一个字母。

②后缀:包含字符串最后一个字母,不包含字符串第一个字母。

3、得到这个前缀表,表里有下标,去对应字符串的下标,就知道要回退到哪一步,进行就行查找了。

4、例子

①目标字符串的前后缀aabaaf

image-20231221105321881

②字符串str:aabaabaaf

image-20231221110356562

3、代码理解

1、求前缀表

①这里需要4个步骤

  • 初始化
  • 前后缀不相同
  • 前后缀相同
  • 更新next[]数组的值

②一般设置j为前缀末尾。i为后缀末尾。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇