242. 有效的字母异位词_难度简单_排序

242. 有效的字母异位词

难度简单

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。

示例 1:

输入: s = "anagram", t = "nagaram"
输出: true

示例 2:

输入: s = "rat", t = "car"
输出: false

说明:
你可以假设字符串只包含小写字母。

进阶:
如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?


解法1:

class Solution {
    // 解法2: 时间,空间都是垫底
    public boolean isAnagram(String str1, String str2) {
        // 健壮性
        if (str1.length() != str2.length()) {
            return false;
        }

        // 遍历str1, 在str2中将每一个字母置"",最后str2如果长度为0,则true
        for (int i = 0; i < str1.length(); i++) {
            str2 = str2.replaceFirst(String.valueOf(str1.charAt(i)), "");
        }
        
        return str2.length() == 0;
    }

    // 解法1: 排序
    public boolean isAnagram_1(String str1, String str2) {
        // 健壮性
        if (str1.length() != str2.length()) {
            return false;
        }

        // 转成数组
        char[] arr1 = str1.toCharArray();
        char[] arr2 = str2.toCharArray();

        // 排序
        Arrays.sort(arr1);
        Arrays.sort(arr2);

        // 比较
        return Arrays.equals(arr1, arr2);
    }
}

 

412. Fizz Buzz

难度简单

写一个程序,输出从 1 到 n 数字的字符串表示。

1. 如果 是3的倍数,输出“Fizz”;

2. 如果 是5的倍数,输出“Buzz”;

3.如果 同时是3和5的倍数,输出 “FizzBuzz”。

示例:

n = 15,

返回:
[
    "1",
    "2",
    "Fizz",
    "4",
    "Buzz",
    "Fizz",
    "7",
    "8",
    "Fizz",
    "Buzz",
    "11",
    "Fizz",
    "13",
    "14",
    "FizzBuzz"
]

解法1:

class Solution {
    public List fizzBuzz(int n) {
        List resultArr = new ArrayList<>();
        for (int i = 1; i <= n; i++) {
            if (i % 3 == 0 && i % 5 == 0) {
                resultArr.add("FizzBuzz");
                continue;
            }
            if (i % 3 == 0) {
                resultArr.add("Fizz");
                continue;
            }
            if (i % 5 == 0) {
                resultArr.add("Buzz");
                continue;
            }
            // String.valueOf()提升效率的关键代码
            resultArr.add(String.valueOf(i));
        }
        return resultArr;
    }
}

 

你可能感兴趣的:(力扣刷题)