字母位置和頻率奇偶相同的字母數量的奇偶性
在這個問題中,我們將計算頻率和位置具有相同奇偶校驗的字元的數量,並列印該數字的計數為奇數或偶數。
為了解決這個問題,我們可以找到字串中每個字元的頻率,並統計頻率和位置具有相同奇偶校驗的字元總數。之後,我們可以根據計數列印奇數或偶數答案。
問題陳述 - 我們給了一個只包含小寫英文字母字元的字串 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中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

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

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

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

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

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

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

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

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