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