1. 题目

神奇的字符串 S 只包含 ‘1’ 和 ‘2’,并遵守以下规则:

字符串 S 是神奇的,因为串联字符 ‘1’ 和 ‘2’ 的连续出现次数会生成字符串 S 本身。

字符串 S 的前几个元素如下:S = “1221121221221121122 …”

如果我们将 S 中连续的 1 和 2 进行分组,它将变成:

1 22 11 2 1 22 1 22 11 2 11 22 …

并且每个组中 ‘1’ 或 ‘2’ 的出现次数分别是:

1 2 2 1 1 2 1 2 2 1 2 2 …

你可以看到上面的出现次数就是 S 本身。

给定一个整数 N 作为输入,返回神奇字符串 S 中前 N 个数字中的 ‘1’ 的数目。

注意:N 不会超过 100,000。

示例:
输入:6
输出:3
解释:神奇字符串 S 的前 6 个元素是 “122112”,它包含三个 1,因此返回 3。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/magical-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 找规律

  • 初始数字为122,指针i初始为下标2
  • 看最后一个数字是2就变成1, 1就变成2
  • 个数按照i的内容确定
    122:+2个1 (最后一个字符^3) = 12211
    12211:+1个2 = 122112
    122112:+1个1 = 1221121
    1221121:+ 2个2 = 122112122
class Solution {public:int magicalString(int n) {string s("122");int i = 2;while(s.size() < n){s += string(s[i]-'0', s.back()^3);++i;}return count(s.begin(),s.begin()+n,'1');}
};

LeetCode 481. 神奇字符串(找规律)相关推荐

  1. Java实现 LeetCode 481 神奇字符串

    481. 神奇字符串 神奇的字符串 S 只包含 '1' 和 '2',并遵守以下规则: 字符串 S 是神奇的,因为串联字符 '1' 和 '2' 的连续出现次数会生成字符串 S 本身. 字符串 S 的前几 ...

  2. LeetCode 0481. 神奇字符串

    [LetMeFly]481.神奇字符串 力扣题目链接:https://leetcode.cn/problems/magical-string/ 神奇字符串 s 仅由 '1' 和 '2' 组成,并需要遵 ...

  3. 力扣 481 神奇字符串

    481. 神奇字符串 神奇字符串 s 仅由 '1' 和 '2' 组成,并需要遵守下面的规则: 神奇字符串 s 的神奇之处在于,串联字符串中 '1' 和 '2' 的连续出现次数可以生成该字符串. s 的 ...

  4. 481. 神奇字符串

    481. 神奇字符串https://leetcode.cn/problems/magical-string/ 难度中等59 神奇字符串 s 仅由 '1' 和 '2' 组成,并需要遵守下面的规则: 神奇 ...

  5. LeetCode 对角线遍历(找规律)

    一.LeetCode 498 对角线遍历 题目描述: 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示. 思路: 参考题解 ...

  6. LeetCode/LintCode 题解丨一周爆刷双指针:神奇字符串

    描述 一个神奇字符串S仅包含'1'和'2',并遵守以下规则: 字符串S是神奇的,因为连接字符'1'和'2'的连续出现次数会产生字符串S本身. 字符串S的前几个元素如下:S = "122112 ...

  7. 【每日一题Day35】LC878第N个神奇数字 | 二分查找 找规律 + 数学

    第N个神奇数字[LC878] 一个正整数如果能被 a 或 b 整除,那么它是神奇的. 给定三个整数 n , a , b ,返回第 n 个神奇的数字.因为答案可能很大,所以返回答案 对 109 + 7 ...

  8. LeetCode-878. 第 N 个神奇数字【数学,二分查找,找规律】

    LeetCode-878. 第 N 个神奇数字[数学,二分查找,找规律] 题目描述: 解题思路一:二分答案+容斥原理.给定一个上下界,然后依次增大下界或者减小上界,直到只剩一个答案.容斥原理是,加上两 ...

  9. LeetCode 319. 灯泡开关(找规律)

    1. 题目 初始时有 n 个灯泡关闭. 第 1 轮,你打开所有的灯泡. 第 2 轮,每两个灯泡你关闭一次. 第 3 轮,每三个灯泡切换一次开关(如果关闭则开启,如果开启则关闭).第 i 轮,每 i 个 ...

最新文章

  1. linux centos yum错误 You could try using --skip-broken to work around the problem
  2. 机器学习——人工神经网络之BP算法编程(python二分类数据集:马疝病数据集)
  3. OpenShift 4 - 镜像漏洞扫描软件 Clair
  4. java代码解决的问题_java代码规范问题及解决方案
  5. .net java xml_java.net.MalformedURLException – 在通过StAX解析XML文件时
  6. micro framework php,index.php
  7. JavaScript表单编程
  8. selenium实现文件上传方法汇总(AutoIt、win32GUI、sengkeys)---基于python
  9. linux安装VLC播放器
  10. 一天搞懂深度学习—学习笔记4(knowledge and tricks)
  11. win10电脑怎么将html网页做成壁纸,手把手教你win10动态桌面怎么设置
  12. 产业势能转化下的“厚积厚发”:新计算产业崛起有了“河南力量”
  13. 小蓝本 第一本 《因式分解技巧》 第七章 综合运用 笔记 (第七天)
  14. sql日期时间相减语句
  15. 关于GR/IR—业务流程篇
  16. 微信新玩法,只需三步就可以在朋友圈发送竖排文字,好看又酷炫!
  17. 数论学习书籍及信奥中的数学之数论相关资料
  18. iphone突然服务器未响应,IphoneX 屏幕突然失灵,重启很多遍也没有… - Apple 社区...
  19. 【讨论话题】 工作中应不应该出于好心,帮助同事完成不属于你职责范围内的问题?
  20. txt格式转换成prg_ppt怎么转换成pdf?详细教程免费分享!

热门文章

  1. 计算机网络TCP/IP
  2. 物理机安装ESXI6.7提示No Network Adapters的解决方案
  3. mysql基础14(关于mysql数据库在没有主键情况下去除重复数据办法)
  4. 学习方向、当前要做的事
  5. ios开发网络篇—HTTP协议 - 转
  6. html:web前端开发规范
  7. python 多次读取文件的细节
  8. 链表_有序链表(给数组排序-应用)
  9. spring-data-mongodb查询结果返回指定字段
  10. Codeforces Round #299 (Div. 2) D. Tavas and Malekas kmp