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

LeetCode題解C++生成每種字符都是奇數(shù)個(gè)的字符串

 更新時(shí)間:2022年10月09日 10:59:17   作者:Junkman丶  
這篇文章主要為大家介紹了LeetCode題解C++生成每種字符都是奇數(shù)個(gè)的字符串示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

題目描述

題目鏈接:1374. 生成每種字符都是奇數(shù)個(gè)的字符串

給你一個(gè)整數(shù) n,請(qǐng)你返回一個(gè)含 n 個(gè)字符的字符串,其中每種字符在該字符串中都恰好出現(xiàn) 奇數(shù)次

返回的字符串必須只含小寫(xiě)英文字母。如果存在多個(gè)滿足題目要求的字符串,則返回其中任意一個(gè)即可。

提示:

1 <= n <= 500

示例 1:

輸入:n = 4
輸出:"pppz"
解釋:"pppz" 是一個(gè)滿足題目要求的字符串,因?yàn)?'p' 出現(xiàn) 3 次,且 'z' 出現(xiàn) 1 次。當(dāng)然,還有很多其他字符串也滿足題目要求,比如:"ohhh" 和 "love"。

示例 2:

輸入:n = 2
輸出:"xy"
解釋:"xy" 是一個(gè)滿足題目要求的字符串,因?yàn)?'x' 和 'y' 各出現(xiàn) 1 次。當(dāng)然,還有很多其他字符串也滿足題目要求,比如:"ag" 和 "ur"。

示例 3:

輸入: n = 7
輸出: "holasss"

整理題意

題目要求我們構(gòu)造一個(gè)長(zhǎng)度為 n 的字符串,且字符串中每個(gè)字符出現(xiàn)的次數(shù)都為奇數(shù)次。

題目規(guī)定字符串中的字符必須都是小寫(xiě)字母,因?yàn)榇鸢覆晃ㄒ唬苑祷厝我庖粋€(gè)都是可以的。

解題思路分析

由于題目?jī)H要求字符串中的字符都要出現(xiàn)奇數(shù)次,那么我們可以直接 分類討論

  • 當(dāng) n 為奇數(shù)時(shí),我們直接構(gòu)造 n 個(gè)相同的任意小寫(xiě)字母即可。
  • 當(dāng) n 為偶數(shù)時(shí),我們可以直接構(gòu)造 n - 1 個(gè)相同的任意小寫(xiě)字母,然后在末尾添加一個(gè)與前面不同的任意一個(gè)小寫(xiě)字母即可。

具體實(shí)現(xiàn)

在構(gòu)造長(zhǎng)度為 n 的字符串時(shí),我們可以直接使用構(gòu)造函數(shù):string(size_type length, char ch),表示構(gòu)造長(zhǎng)度為 length 的字符串,字符串中每個(gè)字符都為 ch,也就是 length 個(gè) ch 構(gòu)成的字符串。

寫(xiě)成 string s(n, c); 表示字符串 sn 個(gè) 'c' 構(gòu)成的字符串(s = "ccc...ccc"),而 string(n, c); 是直接返回 n 個(gè) 'c' 構(gòu)成的字符串("ccc...ccc")。

我們還可以直接通過(guò) while 循環(huán)來(lái)實(shí)現(xiàn)構(gòu)造:while(ans.length() < n) ans += 'c';

復(fù)雜度分析

  • 時(shí)間復(fù)雜度:O(n)。
  • 空間復(fù)雜度:O(1)。這里不計(jì)入返回值需要的空間。

代碼實(shí)現(xiàn)

class Solution {
public:
    string generateTheString(int n) {
        // string(size_type length, char ch);
        // 以length為長(zhǎng)度的ch的拷貝(即length個(gè)ch)
        if(n & 1) return string(n, 'a');
        else return string(n - 1, 'a') + 'b';
    }
};

總結(jié)

  • 該題較為簡(jiǎn)單,僅需分類討論然后直接構(gòu)造即可,分為構(gòu)造長(zhǎng)度為奇數(shù)和偶數(shù)兩種情況。
  • 該題所新學(xué)到的構(gòu)造函數(shù):string(size_type length, char ch),表示 length 個(gè) ch 構(gòu)成的字符串。同時(shí)還可以在聲明字符串時(shí)用到,例如:string s(length, ch);,這就表示構(gòu)造的字符串賦值到一個(gè)變量 s 上了。

測(cè)試結(jié)果:

以上就是LeetCode題解C++生成每種字符都是奇數(shù)個(gè)的字符串的詳細(xì)內(nèi)容,更多關(guān)于C++奇數(shù)字符串的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論