合肥中小型企业网站建设方案模板设计logo名字
web/
2025/10/8 18:12:37/
文章来源:
合肥中小型企业网站建设方案模板,设计logo名字,宁波网站建设制作订做,优惠券怎么做自己的网站1.题目 给定两个字符串 s 和 t #xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意#xff1a;若 s 和 t 中每个字符出现的次数都相同#xff0c;则称 s 和 t 互为字母异位词。 2.示例 sadasd tdaads 返回true saddad t 编写一个函数来判断 t 是否是 s 的字母异位词。 注意若 s 和 t 中每个字符出现的次数都相同则称 s 和 t 互为字母异位词。 2.示例 sadasd tdaads 返回true saddad t adddt 返回true 提示
1 s.length, t.length 5 * 104s 和 t 仅包含小写字母 3.思路
统计字符 首先可以通过统计两者的每一个字符出现的次数进行统计然后通过遍历两者26个字母判断是否都能相等如果都能相等则返回true否则为false
4.代码
LeetCode代码
class Solution {public boolean isAnagram(String s, String t) {int count_s[] new int[26];int count_t[] new int[26];for (char s_index:s.toCharArray()) {count_s[s_index-a];}for (char t_index:t.toCharArray()) {count_t[t_index-a];}for (int i0;i26;i){if (count_s[i]!count_t[i]){return false;}}return true;}
} 可以看到内存管理并不理想所以可以尝试将两个数组结合起来变成一个数组即为累加数组在s数组中累加在t数组中累减。最后通过数组内的元素是否有不为0的元素来判断返回值
改良后代码
class Solution {public boolean isAnagram(String s, String t) {int sum[] new int[26];for (char s_index:s.toCharArray()) {sum[s_index-a];}for (char t_index:t.toCharArray()) {sum[t_index-a]--;}for (int i0;i sum.length;i){if (sum[i]!0){return false;}}return true;}
}
详细案例代码
package LeetCode15_1;public class javaDemo {public static void main(String[] args) {String s rat;String t car;boolean flag false;
// 创建唯一累加数组int sum[] new int[26];
// 遍历s统计s所有字母的出现次数for (char s_index:s.toCharArray()) {sum[s_index-a];}
// 遍历t减去t所有字母出现的次数for (char t_index:t.toCharArray()) {sum[t_index-a]--;}
// 如果两者出现次数都一样那么数组元素应该全是0for (int i0;i sum.length;i){if (sum[i]!0){flag false;break;}}System.out.println(flag);}
}会了试试挑战下一题♪∀● ●´∀♪
LeetCode150道面试经典题-- 两数之和(简单)_Alphamilk的博客-CSDN博客
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89185.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!