【数据结构与算法】字符串经典题
2021-01-03 07:32
标签:pre ble 标准 toc else problems ISE http 移位 先分别将“abcd”和“123”翻转,再将整个字符串翻转,即可得到结果。 先分别将每个单词翻转,最后将整个句子进行翻转即得到结果 LeetCode:有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 1.使用26位计数器 方法二比方法一性能好不少 我自己的蠢方法,使用hashmap但是特别不优雅 更加优化的hashmap写法: 本题的标准做法: 【数据结构与算法】字符串经典题 标签:pre ble 标准 toc else problems ISE http 移位 原文地址:https://www.cnblogs.com/buptleida/p/12991090.html
翻转移位相关方法
右移
s = "abcd123" k = 3
Return "123abcd"
单词翻转
s = "I am a student"
Return "student a am I"
有效的字母异位词
题目描述:
示例:
输入: s = "anagram", t = "nagaram"
输出: true
思想:
因为本题仅限于小写英文字母,所以使用26位数组来进行标记即可
2.map.getOrDefault(ch, 0)
若不存在则返回0。使用这个函数可稍微优化代码,不会太臃肿。
3.遍历String的优化写法//方法一
for(int i=0;i
代码:
class Solution {
public boolean isAnagram(String s, String t) {
HashMap
public boolean isAnagram_2(String s, String t) {
Map
class Solution {
public boolean isAnagram(String s, String t) {
int[] arr = new int[26];
for(char c:s.toCharArray()){
arr[c-‘a‘] +=1;
}
for(char c:t.toCharArray()){
arr[c-‘a‘] -=1;
}
for(int item : arr){
if(item!=0) return false;
}
return true;
}
}