首页 > 编程语言 > 详细

LeetCode242 有效的字母异位词(Java字符数组排序&自定义排序记录)

时间:2020-02-27 22:38:08      阅读:80      评论:0      收藏:0      [点我收藏+]
题目:
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
 
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
 
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-anagram
思路:
将字符串中的字母按某种顺序排序,然后比较即可。
 
字符串比较:
String的equals方法是经过重写后的,利用该方法直接比较两个String字符串时,是字符串的值进行比较的。
如果是将String字符串通过Sting的toCharArray()方法转换成char数组后,再利用char数组的equals进行比较时,实际上参与比较的是两个char数组的地址。如果是想让char数组的内容进行比较的话,需要用Arrays.equals(str1,str2)进行比较。
代码:
import java.util.*;
import java.math.*;


class Solution {
    public boolean isAnagram(String s, String t) {
        char[] ss = s.toCharArray();
        char[] tt = t.toCharArray();
        Arrays.sort(ss);
        Arrays.sort(tt);
        return Arrays.equals(ss, tt);
    }
}



public class Main {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        Solution solution = new Solution();
        String s = scanner.nextLine();
        String t = scanner.nextLine();
        System.out.println(solution.isAnagram(s, t));
    }
}

 

要实现自定义排序,有两种方法
1.实现comparator接口,并重写compare方法
代码:
import java.util.*;
import java.math.*;

class MySort implements Comparator<Integer>{
    @Override
    public int compare(Integer o1, Integer o2) {
        return o2.compareTo(o1);
    }
}


public class Main {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        Integer[] a = new Integer[n];
        for(int i=0; i<n; i++){
            a[i] = scanner.nextInt();
        }
        Arrays.sort(a,new MySort());
        for(int i=0; i<a.length; i++){
            System.out.println(a[i]);
        }

    }
}

2.实现comparable接口并重写compareTo方法

代码:

 

LeetCode242 有效的字母异位词(Java字符数组排序&自定义排序记录)

原文:https://www.cnblogs.com/sykline/p/12374944.html

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