数据结构——leetcode(字符串)【java】
leetcode-242-有效字母异位词
力扣-242
题目:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词
示例:
输入: s = “anagram”, t = “nagaram”
输出: true
输入: s = “rat”, t = “car”
输出: false
思路:可以用hashmap存储,由于是字符串,只有26位,可以用数组来储存。
public boolean isAnagram(String s, String t) {
if(s.length()!=t.length()) return false;
int[] scounts = new int[26];
int[] tcounts = new int[26];
for(char ch:s.toCharArray()){
scounts[ch-'a']++;
}
for(char ch:t.toCharArray()){
tcounts[ch-'a']++;
}
for(int i = 0;i<26;i++){
if(scounts[i]!=tcounts[i]){
return false;
}
}
return true;
}
leetcode-409-最长回文串
力扣-409
题目:给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。
在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。
示例:
输入:
“abccccdd”
输出:
7
解释:
我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。
思路:回文字符串要求字符为偶数可以直接用,奇数剪一次再拿, c / 2 * 2 ,然后就是出现一次的只能算作一次,因为只能放在中间回文
public int longestPalindrome(String s) {
int[] count = new int[256];
for (char c