481. 神奇字符串

神奇的字符串 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 个元素是 “12211”,它包含三个 1,因此返回 3。

class Solution {
public int magicalString(int n) {
List<Integer> s2=new ArrayList<Integer>();
s2.add(1);s2.add(-1);s2.add(-1);
int key=1;
for (int i = 2; i < n; i++) {
if(s2.get(i)==1)
s2.add(key);
if(s2.get(i)==-1){
s2.add(key);
s2.add(key);
}
key=-key;
}
key = 0;
for (int i = 0;i<n;i++) {
if(s2.get(i)==1)
key++;
}
return key;
}
}

最新文章

  1. 学习 CSS 样式
  2. Ionic2 开发环境搭建
  3. Linux内核的总结认识
  4. *BigDecimal初识
  5. C语言 在VS环境下一个很有意思的报错:stack around the variable was corrupted
  6. 8.2/baltic神(水)题
  7. 屏幕尺寸,屏幕分辨率,屏幕密度,各种长宽单位(px,sp,dp,in.pt,mm)
  8. xml增强学习笔记
  9. Web应用程序项目XXXX已配置为使用IIS。无法访问IIS元数据库。您没有足够的特权访问计算机上的IIS网站
  10. (C#)Windows Shell 编程系列2 - 解释,从“桌面”开始展开
  11. AWS要进入中国了
  12. 解决ie 低版本的 background-size 兼容问题
  13. 浅析js模板引擎
  14. Python Web框架篇:Django Model ORM(对象关系映射)
  15. 微信小程序的开发:通过微信小程序看前端
  16. ElasticSearch Index 速度优化 (官方翻译)
  17. [C++]PAT乙级1003. 我要通过!(17/20)
  18. EOS商业落地利器:多签名操作与应用
  19. 集合框架—HashMap
  20. Java Web 1-开发环境搭建(未完待续)

热门文章

  1. 一文教你快速修改ubuntu终端显示的主机名和用户名
  2. STM32 外部中断详解(原理+配置代码)
  3. python语法学习第二天--条件与循环
  4. ESXI 6.5利用Centos7重置root密码
  5. ql的python学习之路-day4
  6. SMBMS项目-准备工作
  7. 【Python Deap库】遗传算法/遗传编程 进化算法基于python DEAP库深度解析讲解
  8. 你真的了解负载均衡中间件nginx吗?
  9. bzoj 1072状压DP
  10. 第几天?(hdu2005)