leetcode-242-有效的字母异位词
Posted nxzblogs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-242-有效的字母异位词相关的知识,希望对你有一定的参考价值。
问题:
package com.example.demo; import java.util.Arrays; public class Test242 /** * 判断是否是异位词 * 分析: (问题提示:都是小写字母的情况) * 利用桶站位,假如是异位词,则这两个字符串的长度相等,则遍历字符串,将第一个字符串中存在的字符时,在桶中+1, * 在第二个存在的字符,则桶中-1,当遍历完成之后,遍历数组,是否所有的位置都是0,如果都是0,则是异位,不都是0,则不是异位 */ public boolean isAnagram(String s, String t) int len1 = s.length(); int len2 = t.length(); if (len1 != len2) return false; int cur = 0; int[] bucket = new int[26]; while (cur < len1) // 都是小写字母的情况 int index1 = s.charAt(cur) - ‘a‘; bucket[index1]++; int index2 = t.charAt(cur) - ‘a‘; bucket[index2]--; cur++; for (int i : bucket) if (i != 0) return false; return true; /** * 方法二:利用排序和比较字符串 */ public boolean isAnagram1(String s, String t) if (s.length() != t.length()) return false; char[] chars = s.toCharArray(); char[] chars1 = t.toCharArray(); Arrays.sort(chars); Arrays.sort(chars1); return Arrays.equals(chars, chars1); public static void main(String[] args) Test242 t = new Test242(); boolean anagram = t.isAnagram1("asdf", "fdas"); System.out.println(anagram);
以上是关于leetcode-242-有效的字母异位词的主要内容,如果未能解决你的问题,请参考以下文章