Leetcode 481. Magical String 魔幻字符串 解题报告
2017-01-13 16:03
323 查看
1 解题思想
这道题的就是,有一个只包含1和2的字符串,他有一个神奇的特性:*如果将字符串按照1和2分组后,统计每组1或2出现的次数所拼接成的字符串,和这个字符串本身一样
我没做这道题。。感觉太烦,直接贴的别人的答案了,有兴趣我再来自己写
2 原题
A magical string S consists of only '1' and '2' and obeys the following rules: The string S is magical because concatenating the number of contiguous occurrences of characters '1' and '2' generates the string S itself. The first few elements of string S is the following: S = "1221121221221121122……" If we group the consecutive '1's and '2's in S, it will be: 1 22 11 2 1 22 1 22 11 2 11 22 ...... and the occurrences of '1's or '2's in each group are: 1 2 2 1 1 2 1 2 2 1 2 2 ...... You can see that the occurrence sequence above is the S itself. Given an integer N as input, return the number of '1's in the first N number in the magical string S. Note: N will not exceed 100,000. Example 1: Input: 6 Output: 3 Explanation: The first 6 elements of magical string S is "12211" and it contains three 1's, so return 3.
3 AC解
//此题来自Discuss的解 public class Solution { public int magicalString(int n) { StringBuilder magic = new StringBuilder("1221121221221121122"); int pt1 = 12, pt2 = magic.length(), count = 0; while(magic.length() < n){ if(magic.charAt(pt1) == '1'){ if(magic.charAt(pt2-1) == '1') magic.append(2); else magic.append(1); pt2++; }else{ //==2 if(magic.charAt(pt2-1) == '1') magic.append(22); else magic.append(11); pt2+=2; } pt1++; } for(int i=0;i<n;i++) if(magic.charAt(i)=='1') count++; return count; } }
相关文章推荐
- Leetcode 28.Implement strStr() 解题报告【C库函数strstr()模拟-字符串中子串首次出现的地址】
- Leetcode 415. Add Strings 字符串加法 解题报告
- Leetcode #43. Multiply Strings 字符串相乘 解题报告
- Leetcode 394. Decode String 字符串解码 解题报告
- Leetcode 434. Number of Segments in a String 字符串的分段 解题报告
- Leetcode 383. Ransom Note 构造字符串 解题报告
- [LeetCode] Longest Common Prefix 解题报告
- [LeetCode] Generate Parentheses 解题报告
- [汇总]字符串题目推荐及解题报告
- [汇总]字符串题目推荐及解题报告
- [Leetcode] Length of Last Word 解题报告
- [LeetCode] First Missing Positive 解题报告
- [LeetCode] Flatten Binary Tree to Linked List 解题报告
- [汇总]字符串题目推荐及解题报告
- [LeetCode] Interleaving String 解题报告
- [LeetCode] Jump Game 解题报告
- [LeetCode] Gray Code 解题报告
- hdu 2017 字符串统计 解题报告
- NIT-OJ-1022-展开字符串-解题报告
- 2008-06-28 14:31 [汇总]字符串题目推荐及解题报告[转]