leetcode 242. 有效的字母异位词(Java版)
生活随笔
收集整理的這篇文章主要介紹了
leetcode 242. 有效的字母异位词(Java版)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
https://leetcode-cn.com/problems/valid-anagram/
題解
本題默認所有字母均為小寫字母。
- 首先,建一個容量為26的數組,存放每一個字母出現的次數。
- 然后,遍歷字符串s、t中的每一個字母,同一個字母在兩字符串中出現的次數可以相互抵消。
- 最后,看整個數組是否全部抵消,即是否每一個元素均為0即可。
復雜度分析
時間復雜度O(N),其中N為字符串的長度。
使用固定大小為26的數組,空間復雜度O(1)。
代碼
public class Solution {public boolean isAnagram(String s, String t) {if (s.length() != t.length()) return false;int[] count = new int[26]; // 記錄每個字母出現的次數for (int i = 0; i < s.length(); i++) { // 同一個字母,在兩個字符串中出現次數相互抵消count[s.charAt(i) - 'a']++;count[t.charAt(i) - 'a']--;}for (int i = 0; i < 26; i++) { // 檢查是否完全抵消if (count[i] != 0) return false;}return true;} }總結
以上是生活随笔為你收集整理的leetcode 242. 有效的字母异位词(Java版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 237. 删除链表中的
- 下一篇: 左神算法:二叉树的按层打印与ZigZag