目录
循环移位
循环移位可以通过部分翻转然后整体翻转来完成
字符串循环移位包含
给定两个字符串 s1 和 s2,要求判定 s2 是否能够被 s1 做循环移位得到的字符串包含。
s1 = AABCD, s2 = CDAA
Return : true
s1 进行循环移位的结果是 s1s1 的子字符串,因此只要判断 s2 是否是 s1s1 的子字符串即可。
字符串循环移位
将字符串向右循环移动 k 位。
s = “abcd123” k = 3
Return “123abcd”
将 abcd123 中的 abcd 和 123 单独翻转,得到 dcba321,然后对整个字符串进行翻转,得到 123abcd。
字符串中单词的翻转
s = “I am a student”
Return “student a am I”
将每个单词翻转,然后将整个字符串翻转。
两个字符串包含的字符是否相同
leetcode 242 有效的字母异位词(简单)
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1:
输入: s = “anagram”, t = “nagaram”
输出: true
示例 2:
输入: s = “rat”, t = “car”
输出: false
说明:
你可以假设字符串只包含小写字母。
题解:
常规词频统计
class Solution {
public boolean isAnagram(String s, String t) {
int n = s.length();
int m = t.length();
if(n != m){
return false;
}
int[] freqS = new int[26];
int[] freqT = new int[26];
for(int i=0; i<n; i++){
freqS[s.charAt(i)-'a']++;
freqT[t.charAt(i)-'a']++;
}
for(int i=0; i<n; i++){
if(freqS[s.charAt(i)-'a'] != freqT[s.charAt(i)-'a']){
return false;
}
}
return true;
}
}
计算一组字符集合可以组成的回文字符串的最大长度
leetcode 409 最长回文串(简单)
给定一个包含大写字母和小写