目錄
方法2
演算法
範例
輸出
首頁 後端開發 C++ 字母位置和頻率奇偶相同的字母數量的奇偶性

字母位置和頻率奇偶相同的字母數量的奇偶性

Sep 14, 2023 pm 03:41 PM
位置 頻率 奇偶性

字母位置和頻率奇偶相同的字母數量的奇偶性

在這個問題中,我們將計算頻率和位置具有相同奇偶校驗的字元的數量,並列印該數字的計數為奇數或偶數。

為了解決這個問題,我們可以找到字串中每個字元的頻率,並統計頻率和位置具有相同奇偶校驗的字元總數。之後,我們可以根據計數列印奇數或偶數答案。

問題陳述 - 我們給了一個只包含小寫英文字母字元的字串 alpha。我們需要檢查字母位置和頻率相同的字元數量是奇數還是偶數。

如果任何字元滿足以下任何條件,則該字元具有相同的頻率和字母位置奇偶性。

  • 如果字串中的字元頻率為奇數,且字母位置也為奇數。

  • 如果字串中的字元頻率是偶數,且字母位置也是偶數。

範例

輸入

alpha = "dbbabcdc"
登入後複製

輸出

Even
登入後複製
登入後複製

說明 

  • #a的出現頻率為1,位置也是1,因此奇偶校驗相同,計數變成1。

  • d的頻率為2,位置為4。因此,由於奇偶校驗位相同,因此計數變為2。

計數值為 2,為偶數。

輸入

alpha = "ppqqr"
登入後複製

輸出

Odd
登入後複製

說明 – 只有『p』的奇偶校驗相同。因此,計數為 1,答案為奇數。

輸入

alpha = "pqqqqrrr";
登入後複製

輸出

Even
登入後複製
登入後複製

說明 - 任何字元的奇偶校驗都不相同。因此,由於計數值為零,它會列印“Even”。

方法 1

在這種方法中,我們將使用映射資料結構來儲存每個字串字元的頻率。之後,我們將統計字母位置和頻率中具有相同奇偶性的字元的數量。

演算法

第 1 步 - 定義長度為 27 的 count[] 陣列並以 0 初始化。此外,用 0 初始化「奇偶校驗」。

第 2 步驟 - 將字元頻率儲存在 count[] 陣列中。

第 3 步 - 進行 26 次迭代以遍歷每個小寫字母字元。

步驟4 - 如果count[p]大於0,檢查字元頻率和位置是否有相同的奇偶校驗。如果是,則將「奇偶校驗」值增加 1。

第 5 步 - 最後,如果奇偶校驗可被 2 整除,則回傳「Even」。否則,返回“奇數”。

範例

#include <bits/stdc++.h>
using namespace std;

string getParity(string alpha) {
    // To store the count of characters
    int count[27] = {0};
    int parity = 0;
    // Count frequency of each character
    for (int p = 0; p < alpha.size(); p++) {
        count[alpha[p] - 'a' + 1]++;
    }
    for (int p = 1; p <= 26; p++) {
        if (count[p] != 0) {
            // Increment parity for valid odd and even parity
            if (p % 2 == 0 && count[p] % 2 == 0 || p % 2 == 1 && count[p] % 2 == 1)
                parity++;
        }
    }
    // Return value based on final parity count
    if (parity % 2 == 1)
        return "ODD";
    else
        return "EVEN";
}
int main() {
    string alpha = "dbbabcdc";
    cout << "The parity of given string's character's is " << getParity(alpha);
    return 0;
}
登入後複製

輸出

The parity of given string's character's is EVEN
登入後複製
登入後複製

時間複雜度 - O(N) 用於計算字元的頻率。

空間複雜度 - O(26) ~ O(1) 來儲存字母字元的頻率。

方法2

在這種方法中,我們將對給定的字串進行排序。之後,每當我們得到不同的相鄰字元時,我們都會檢查前一個字元的頻率和位置的奇偶性。

演算法

第 1 步 - 將「奇偶校驗」初始化為 0。

第 2 步 - sort() 方法用於對給定字串進行排序。

第3步 - 開始遍歷字串,並將‘charCnt’初始化為0以儲存目前字元的頻率。

步驟 4 - 如果目前字元與下一個字元不同,請檢查「charCnt」的奇偶校驗和字元位置是否相符。如果是,則將「奇偶校驗」增加 1。

第 5 步 - 如果目前字元與前一個字元相同,則將「charCnt」增加 1。

第 6 步 - 最後,如果「奇偶校驗」值為偶數,則傳回「Even」。否則,返回“奇數”。

範例

#include <bits/stdc++.h>
using namespace std;

string getParity(string alpha) {
    int parity = 0;
    // Sort the string
    sort(alpha.begin(), alpha.end());
    // Traverse the string
    for (int p = 0; p < alpha.size(); p++) {
        int charCnt = 0;        
        // When we get different adjacent characters
        if (alpha[p] != alpha[p + 1]) {
            // Validating the odd and even parties
            if (charCnt % 2 == 1 && (alpha[p] - 'a' + 1) % 2 == 1 || charCnt % 2 == 0 && (alpha[p] - 'a' + 1) % 2 == 0)
                parity++;
        } else {
            charCnt++;
        }
    }
    if (parity % 2 == 1)
        return "ODD";
    else
        return "EVEN";
}
int main() {
    string alpha = "abbbccdd";
    cout << "The parity of given string's character's is " << getParity(alpha);
    return 0;
}
登入後複製

輸出

The parity of given string's character's is EVEN
登入後複製
登入後複製

時間複雜度 - O(NlogN) 用於對字串進行排序。

空間複雜度 - O(N) 對字串進行排序。

第一種方法採用常數空間,而第二種方法則採用動態空間對給定字串進行排序。另外,第二種方法的時間成本較高,因此建議使用第一種方法以獲得更好的效能。

以上是字母位置和頻率奇偶相同的字母數量的奇偶性的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

詳細介紹如何在Windows 11上開啟環境變數設定 詳細介紹如何在Windows 11上開啟環境變數設定 Dec 30, 2023 pm 06:07 PM

環境變數功能是系統中的配置程式運行必備工具,但是在最新的win11系統中還有許多的用戶不知道怎麼設置打開,下面就給你們帶來了win11環境變量打開位置詳細介紹,快來一起學習操作一下吧。 win11環境變數在哪:1、先輸入“win+R”,開啟運行框。 2、然後在裡面輸入指令:controlsystem。 3.在開啟的系統資訊介面中,選擇左側選單的「進階系統設定」。 4.隨後在開啟的「系統屬性」視窗選擇下方的「環境變數」選項。 5.最後在開啟的環境變數中,即可依照需求進行相關的設定。

如何在 Steam 中更改遊戲下載位置 如何在 Steam 中更改遊戲下載位置 May 10, 2023 pm 11:22 PM

Steam是PC遊戲玩家中最受歡迎的應用程式之一,因為您可以在Steam商店中找到任何主要遊戲。它透過其用戶介面簡化了用戶喜愛的遊戲的下載、安裝和管理。每當Steam用戶想要下載遊戲時,Steam都會使用應用程式的預設安裝目錄來下載和安裝遊戲。此位置預設為C:\ProgramFiles(x86)\Steam。問題來了,因為大多數用戶在C碟上沒有足夠的空間,特別是對於佔用大量儲存空間的遊戲,例如50–100GB。為了克服這個問題,Steam允許用戶使用應用程式更改遊戲的下載和

Win11的啟動路徑以及如何開啟它 Win11的啟動路徑以及如何開啟它 Jan 03, 2024 pm 11:13 PM

每個Windows系統都有一個啟動路徑,如果你在其中新增了檔案或軟體,就會在開機的時候打開它。不過不少朋友不知道win11啟動路徑在哪裡,其實我們只要進入C碟的對應資料夾就可以了。 win11啟動路徑:1、雙擊開啟「此電腦」2、直接將此路徑「C:\ProgramData\Microsoft\Windows\StartMenu\Programs\Startup」貼進路徑方塊。 3.這裡就是win11啟動路徑了,如果我們要開機開啟檔案就可以將檔案放進來。 4.如果你根據這條路徑進不來,可能是被隱藏了。

windows10憑證管理員在哪裡 windows10憑證管理員在哪裡 Jul 09, 2023 am 10:09 AM

憑證管理器是使用者用來管理web憑證和Windows憑證的作用,但很多使用者還不清楚windows10憑證管理器在哪裡。其實憑證管理器就在操作面板上,大家在打開控制面板以後記得將查看方法改成小圖標,那樣就能見到憑證管理器了,點擊查看就能查看各類信息了,如果想要查看大量,就需要輸入帳戶密碼。 windows10憑證管理員在哪裡:1、在系統中開啟控制台,點選右上角的檢視方法,將類型轉換成小圖示。 2.以小圖示的方式查看以後,點選「憑證管理員」。 3.進來憑證管理器以後,能夠看見有關作用的介紹,主要用於

星穹鐵道克勞克影視樂園摺紙小鳥位置 星穹鐵道克勞克影視樂園摺紙小鳥位置 Mar 27, 2024 pm 11:51 PM

星穹鐵道克勞克影視樂園總共有20隻摺紙小鳥,有很多玩家不知道克勞克影視樂園摺紙小鳥在哪,小編已經把每隻摺紙小鳥位置全部都總結出來了,幫助大家進行尋找,具體內容一起來看看這篇克勞克影視樂園摺紙小鳥位置最新匯總。崩壞星穹鐵道攻略大全星穹鐵道克勞克影視樂園摺紙小鳥位置1、克勞克影視樂園一層2、克勞克影視樂園二層

記憶體頻率和時序哪個對效能影響較大 記憶體頻率和時序哪個對效能影響較大 Feb 19, 2024 am 08:58 AM

記憶體是電腦中非常重要的組件之一,它對電腦的效能和穩定性有著重要影響。在選擇記憶體時,人們往往會專注於兩個重要的參數,即時序和頻率。那麼,對於記憶體效能來說,時序和頻率哪個更重要呢?首先,我們來了解時序和頻率的概念。時序指的是記憶體晶片在接收和處理資料時所需的時間間隔。它通常以CL值(CASLatency)來表示,CL值越小,記憶體的處理速度越快。而頻率則是內

了解pip安裝包儲存的位置和結構 了解pip安裝包儲存的位置和結構 Jan 18, 2024 am 08:23 AM

深入了解pip安裝的套件存放位置,需要具體程式碼範例pip是Python語言常用的套件管理工具,用於方便安裝、升級和管理Python套件。在使用pip安裝套件時,它會自動從PyPI(Python套件索引)下載對應的套件文件,並將其安裝到指定的位置。那麼,pip安裝的套件究竟存放在哪裡呢?這是很多Python開發者都會遇到的問題。本文將深入探討pip安裝的套件存放位置,並提供

win11關機位置 win11關機位置 Jan 10, 2024 am 09:14 AM

如果我們要長時間離開電腦,那麼最好將電腦關機保護它,那麼win11關機在哪裡呢,其實一般來說只要打開開始選單,在其中就可以找到關機按鈕了。 win11關機在哪裡:答:在開始功能表的電源按鈕。 1.首先我們點選底部工作列的「windows標誌」開啟「開始功能表」2、開啟後,可以在右下角找到「電源」按鈕,如圖所示。 3.點擊電源按鈕後,就能看到「關機」了,點擊它就能關機。 4.如果因為當機等特殊狀況無法關機,那麼可以直接用電腦上的「電源鍵」長按強制關機。

See all articles