首页 > 其他分享 >LeetCode 481.神奇字符串

LeetCode 481.神奇字符串

时间:2023-06-07 14:02:57浏览次数:42  
标签:int 122 字符串 LeetCode 481 神奇


LeetCode 481.神奇字符串

LeetCode 481.神奇字符串_leetcode

本题目应该说难在读题,根据题目描述的意思,s作为一个神奇字符串,他的每一组数都是根据前面的数去判定的,以开头的122之后为例,122之的末尾为2,而s的规则是1和2交替出现,所以后面应当跟着"1",而这一组"1"的数量则由其前面的"2"来决定,所以这一组有两个"1",同理,在这后面跟着的就是一个"2",剩下要做的,就是把这个过程模拟出来求得结果即可

class Solution {
public:
    int magicalString(int n) {
        string s="122";
        for(int i=2, k=1;i<n;i++, k=3-k)
        {
            for(int j=0;j<s[i]-'0';j++)
                s+=to_string(k);
        }
        //for(int i=0;i<n;i++)    cout<<s[i]<<endl;
        int res=0;
        for(int i=0;i<n;i++)
        {
            res+= s[i]=='1';
        }
        return res;
    }
};


标签:int,122,字符串,LeetCode,481,神奇
From: https://blog.51cto.com/u_15567308/6431273

相关文章

  • LeetCode 9.回文数
    LeetCode9.回文数思路分两种情况。如果值为负数,则当前数肯定不是回文数如果值为正数,则将其数值反转后与原数值比较,如果相同则是回文数代码classSolution{publicbooleanisPalindrome(intx){if(x<0)returnfalse;inttmp=0,num=x;while(num......
  • LeetCode 915.分割数组
    LeetCode915.分割数组思路模拟题,两遍遍历,因为要保证左侧区间尽可能小,所以就要找到最左面的适合的点,所以第一遍先从最右边开始记录前缀最小的数,之后再从左往右遍历一遍记录当前最大的前缀,同时将当前最大前缀与下一位的最小前缀比较,如果小于下一位的最小前缀则直接输出即可代码class......
  • LeetCode 934.最短的桥
    LeetCode934.最短的桥题目限制了岛的数量肯定为2,所以我们只需要找到两个岛即可,首先通过遍历每一个坐标找到一个岛的点(值为1),接着以这个点开始DFS,找到该岛上所有的点,并将值设为-1,然后以这些点为基础集合,再进行BFS,当找到第一个值为1的点时,BFS的层数就是需要翻转的数目classSolution......
  • LeetCode 907.子数组的最小值之和
    LeetCode907.子数组的最小值之和本题由于每一项都需要遍历到,所以我们要计算所有可能的排列组合情况,所以这道题我们应该从每个元素分别出发,构建单调栈,找到每个元素左边和右边第一个比他小的元素,在这个区间范围内,我们可以断定任何一个子区间得到的最小值都是当前选定这个元素,所以最......
  • 【LeetCode】11月每日一题刷题记录
    575.分糖果classSolution{public:intdistributeCandies(vector<int>&candyType){unordered_set<int>S;for(autoc:candyType)S.insert(c);returnmin(candyType.size()/2,S.size());}};237.删除链表中的节点由于是单链表......
  • LeetCode 862.和至少为k的最短子数组
    LeetCode862.和至少为k的最短子数组本题前缀和队列并不单调,所以应该算变种单调队列,在计算出单调队列以后还要进行进一步优化,即在如下条件如果我们找到当前的s[i]满足条件,则说明之后选取的s[i]不管是多少,均没有当前s[i]距离s[j]近,所以在此以后的值均可以丢弃,同理,s[j]之前的值也是......
  • LeetCode 388.文件的最长绝对路径
    题目链接思路针对文件路径的特征,一个文件中一定包含.分隔符,以此为依据可以判定当前字符串是否是一个文件,文件系统是一个树形结构的角度来看的话,题中给定的字符串实际上是以一个树形结构前序遍历的序列,连续的\t表示出了当前的深度,而相邻的节点之间以\n进行分割。假设当前的路径为x/......
  • 006 数据库学习笔记--字符串操作函数 + 索引
    常用字符串操作函数:--返回字符串中指定的子串出现的开始位置(索引从1开始)selectCHARINDEX('34','1234567890123')asstartIndex--返回字符串中指定的子串出现的开始位置(索引从1开始,字串前必须加%)selectPATINDEX('%34%','1234567890123')asstartIndex--大小写转化s......
  • 8、hive的关系运算、逻辑预算、数学运算、数值运算、日期函数、条件函数和字符串函数
    ApacheHive系列文章1、apache-hive-3.1.2简介及部署(三种部署方式-内嵌模式、本地模式和远程模式)及验证详解2、hive相关概念详解--架构、读写文件机制、数据存储3、hive的使用示例详解-建表、数据类型详解、内部外部表、分区表、分桶表4、hive的使用示例详解-事务表、视图、物......
  • Python如何使用函数进行字符串大小写转换?
    在Python语言中,为了方便开发者对字符串中的字母进行大小写转换,为大家提供了3种函数,它们分别是title()、lower()和upper(),那么该如何使用这些函数呢?以下是详细的内容:1、title()方法title()方法用于将字符串中每个单词的首字母转为大写,其他字母全部转为小写,转换完成......