首页 > 其他分享 >Leetcode第481题:神奇字符串(Magical string)

Leetcode第481题:神奇字符串(Magical string)

时间:2022-10-31 21:35:02浏览次数:54  
标签:begin string ss 个数 Magical int Leetcode 481

解题思路

根据题意,我们可以把 ss 看成是由「11 组」和「22 组」交替组成的,重点在于每组内的数字是一个还是两个,这可以从 ss 自身上知道。

构造到 ss 的长度达到 nn 时停止。

注意最后一次构造可能会填入两个数,导致 ss 的长度为 n+1n+1,因此最后统计 11 的个数时,应统计 ss 的前 nn 个数,而不是整个 ss。

核心代码:

class Solution {
public:
    int magicalString(int n) {
        string s = "\1\2\2"; // 值就是 1,2,2,这样就可以直接用 s[i] 当作个数
        for (int i = 2; s.length() < n; ++i)
            s += string(s[i], s.back() ^ 3); // 1^3=2, 2^3=1,这样就能在 1 和 2 之间转换
        return count(s.begin(), s.begin() + n, 1);
    }
};

标签:begin,string,ss,个数,Magical,int,Leetcode,481
From: https://www.cnblogs.com/hql5/p/16845884.html

相关文章

  • QJsonObject与(QByteArray、QString)互相转换
    QJsonObjectCbActionSyncManager::getJsonObjectFromByteArray(constQByteArrayjsonString){QJsonDocumentjsonDocument=QJsonDocument::fromJson(jsonString);......
  • 3.Redis系列之常用数据类型字符串String
    本文系列学习redis五大常用数据类型之字符串String的基本操作及编码与底层数据结构1.基本操作//setkeyvalue设置键值对127.0.0.1:6379>setblogshenjian.onlineO......
  • leetcode-191-easy
    NumberOf1BitsWriteafunctionthattakesanunsignedintegerandreturnsthenumberof'1'bitsithas(alsoknownastheHammingweight).Note:Notetha......
  • leetcode-278-easy
    FirstBadVersionYouareaproductmanagerandcurrentlyleadingateamtodevelopanewproduct.Unfortunately,thelatestversionofyourproductfailsthe......
  • leetcode-268-easy
    MissingNumberGivenanarraynumscontainingndistinctnumbersintherange[0,n],returntheonlynumberintherangethatismissingfromthearray.Exam......
  • leetcode-500-easy
    KeyboardRowGivenanarrayofstringswords,returnthewordsthatcanbetypedusinglettersofthealphabetononlyonerowofAmericankeyboardliketheim......
  • leetcode-1356-easy
    SortIntegersbyTheNumberOf1BitsYouaregivenanintegerarrayarr.Sorttheintegersinthearrayinascendingorderbythenumberof1'sintheirbinar......
  • C++面向对象高级开发(六)写好一个String类
    类的内部:public:构造函数、拷贝构造、拷贝赋值、析构函数的接口和辅助函数以及它的实现private:参数  类的外部:内联:inline构造函数:判断是否有初值:有初值:分配......
  • Java学习笔记day1——String类型变量
    /*String(字符串)类型变量的使用*1.String属于引用数据类型;*2.String用双引号""进行定义;*/classStringTest{publicstaticvoidmain(String[]ag......
  • [单片机框架] [str_hex] 字符串和16进制互转 string to hex
    /*********************************************************************************@filestr_hex.c*@authorjianqiang.xue*@VersionV1.0.0*@Date2021-04......