首页 > 其他 > 详细

leetcode-242-有效的字母异位词

时间:2019-08-03 00:49:57      阅读:79      评论:0      收藏:0      [点我收藏+]

问题:

技术分享图片

 

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-有效的字母异位词

原文:https://www.cnblogs.com/nxzblogs/p/11274716.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!