欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java C++題解leetcode判定是否為字符重排

 更新時間:2022年09月29日 15:01:51   作者:AnjaVon  
這篇文章主要為大家介紹了Java C++題解leetcode判定是否為字符重排,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

題目要求

思路一:排序

Java

class Solution {
    public boolean CheckPermutation(String s1, String s2) {
        if(s1.length() != s2.length())
            return false;
        char[] sort1 = s1.toCharArray();
        Arrays.sort(sort1);
        char[] sort2 = s2.toCharArray();
        Arrays.sort(sort2);
        return Arrays.equals(sort1, sort2);
    }
}
  • 時間復(fù)雜度:O(n log n),排序復(fù)雜度
  • 空間復(fù)雜度:O(n),拷貝字符串用于排序

C++

class Solution {
public:
    bool CheckPermutation(string s1, string s2) {
        if (s1.size() != s2.size())
            return false;
        sort(s1.begin(), s1.end());
        sort(s2.begin(), s2.end());
        return s1 == s2;
    }
};
  • 時間復(fù)雜度:O(nlog?n)O(n\log n)O(nlogn),排序復(fù)雜度
  • 空間復(fù)雜度:O(log?n)O(\log n)O(logn),排序需要

Rust

impl Solution {
    pub fn check_permutation(s1: String, s2: String) -> bool {
        if s1.len() != s2.len() {
            false
        }
        else {
            let (mut sort1, mut sort2) = (s1.as_bytes().to_vec(), s2.as_bytes().to_vec());
            sort1.sort();
            sort2.sort();
            sort1 == sort2
        }
    }
}
  • 時間復(fù)雜度:O(n log? n),排序復(fù)雜度
  • 空間復(fù)雜度:O(n),拷貝字符串用于排序

思路二:詞頻統(tǒng)計

Java

class Solution {
    public boolean CheckPermutation(String s1, String s2) {
        if(s1.length() != s2.length())
            return false;
        int[] freq = new int[128];
        int diff = 0;
        for (int i = 0; i < s1.length(); i++) {
            if (++freq[s1.charAt(i)] == 1)
                diff++;
            if (--freq[s2.charAt(i)] == 0)
                diff--;
        }
        return diff == 0;
    }
}
  • 時間復(fù)雜度:O(n)
  • 空間復(fù)雜度:O(C),常數(shù)C為字符集大小

C++

class Solution {
public:
    bool CheckPermutation(string s1, string s2) {
        if (s1.size() != s2.size())
            return false;
        int freq[128];
        memset(freq, 0, sizeof(freq));
        int diff = 0;
        for (int i = 0; i < s1.size(); i++) {
            if (++freq[s1[i]] == 1)
                diff++;
            if (--freq[s2[i]] == 0)
                diff--;
        }
        return diff == 0;
    }
};
  • 時間復(fù)雜度:O(n)
  • 空間復(fù)雜度:O(C),常數(shù)C為字符集大小

Rust

impl Solution {
    pub fn check_permutation(s1: String, s2: String) -> bool {
        s1.len() == s2.len() && s1.bytes().zip(s2.bytes()).fold(vec![0; 128], |mut freq, (c1, c2)| {
            freq[c1 as usize] += 1;
            freq[c2 as usize] -= 1;
            freq
        }).into_iter().all(|diff| diff == 0)
    }
}
  • 時間復(fù)雜度:O(n)
  • 空間復(fù)雜度:O(C),常數(shù)C為字符集大小

總結(jié)

簡單模擬題、快樂結(jié)束~

有些語言不能改的字符串在這種時候真是煩煩……

以上就是Java C++題解leetcode判定是否為字符重排的詳細內(nèi)容,更多關(guān)于Java C++ 判定是否為字符重排的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C語言面試C++字符串替換空格示例

    C語言面試C++字符串替換空格示例

    這篇文章主要介紹了C語言面試中C++字符串替換空格示例,文中給出了基本上可以拿下offer的代碼,有需要的朋友可以借鑒參考下,希望大家都能早日拿到心儀的offer
    2021-09-09
  • 如何在C語言的宏中使用類型關(guān)鍵字

    如何在C語言的宏中使用類型關(guān)鍵字

    如何在C語言的宏中使用類型關(guān)鍵字呢?以下是實現(xiàn)方法。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • 詳解C語言中函數(shù)宏的三種封裝方式

    詳解C語言中函數(shù)宏的三種封裝方式

    函數(shù)宏,即包含多條語句的宏定義,其通常為某一被頻繁調(diào)用的功能的語句封裝,且不想通過函數(shù)方式封裝來降低額外的彈棧壓棧開銷。本文就來聊聊函數(shù)宏的三種封裝方式吧
    2023-03-03
  • 淺談c++的編譯和運行

    淺談c++的編譯和運行

    下面小編就為大家?guī)硪黄獪\談c++的編譯和運行。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • c++實現(xiàn)二路歸并排序的示例代碼

    c++實現(xiàn)二路歸并排序的示例代碼

    這篇文章主要介紹了c++實現(xiàn)二路歸并排序的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • 求解旋轉(zhuǎn)數(shù)組的最小數(shù)字

    求解旋轉(zhuǎn)數(shù)組的最小數(shù)字

    這篇文章主要介紹了求解旋轉(zhuǎn)數(shù)組的最小數(shù)字的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • C++結(jié)構(gòu)體struct和類class區(qū)別詳解

    C++結(jié)構(gòu)體struct和類class區(qū)別詳解

    struct和class有什么區(qū)別?最本質(zhì)的一個區(qū)別就是默認的訪問控制:默認的繼承訪問權(quán)限,struct是public的,class是private的。
    2017-11-11
  • C語言大小端模式、判斷大小端、大小端轉(zhuǎn)換方法詳解

    C語言大小端模式、判斷大小端、大小端轉(zhuǎn)換方法詳解

    這篇文章主要介紹了C語言大小端模式、判斷大小端、大小端轉(zhuǎn)換的相關(guān)資料,大端和小端是數(shù)據(jù)在內(nèi)存中的存儲方式,大端模式下高字節(jié)存于低地址,小端模式則相反,大小端問題由數(shù)據(jù)類型多字節(jié)存儲引起,不同選擇形成不同存儲模式,需要的朋友可以參考下
    2024-10-10
  • C++ opencv圖像處理實現(xiàn)圖片幾何變換示例

    C++ opencv圖像處理實現(xiàn)圖片幾何變換示例

    這篇文章主要為大家介紹了C++ opencv圖像處理實現(xiàn)圖片幾何變換示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • C語言實現(xiàn)餐飲管理系統(tǒng)

    C語言實現(xiàn)餐飲管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)餐飲管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評論