首页 > 其他分享 >779. 第K个语法符号

779. 第K个语法符号

时间:2022-10-20 12:44:04浏览次数:79  
标签:第一行 符号 int 行是 779 取反 一行 语法

779.第K个语法符号

我们构建了一个包含 n 行( 索引从 1 开始 )的表。首先在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。

  • 例如,对于 n = 3 ,第 1 行是 0 ,第 2 行是 01 ,第3行是 0110 。
    给定行数 n 和序数 k,返回第 n 行中第 k 个字符。( k 从索引 1 开始)

示例 1:

  • 输入: n = 1, k = 1

    输出: 0

    解释: 第一行:0

提示:

  • 1 <= n <= 30

    1 <= k <= 2n - 1

题目地址

1.暴力做法
将每行用string存储起来,然后输出相应行的第K个字符。很显然对于该题指数级增长的数据来说,会超时。

2.~看题解~找规律
第一行 0
第二行 0 1
第三行 0 1 1 0
第四行 0 1 1 0 1 0 0 1
第五行 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0

每一行都有上一行+上一行按位取反拼接而成。因此可以将第n行以第n-1行为参考划分为(11<<(n-2))与(1<<(n-2)1<<(n-1))两部分。前一部分与第n-1行相同,后部分按位取反。

class Solution {
public:
    int kthGrammar(int n, int k) {
        if(k==1)
            return 0;
        //后部分异或1按位取反
        else if(k>(1<<(n-2))){
            return 1^kthGrammar(n-1,k-(1<<(n-2)));
        }        
        else{
            return kthGrammar(n-1,k);
        }
    }
};

标签:第一行,符号,int,行是,779,取反,一行,语法
From: https://www.cnblogs.com/SkyDusty/p/16809469.html

相关文章

  • 【学习笔记】JSP基础语法和指令
    JSP基础语法和指令写jsp代码之前,需要导入四个包Servlet依赖JSP依赖JSP表达式依赖standard标签库 基础语法jsp表达式语法:<%=xxxxxxx%>xxxxxxx为j......
  • 带符号数的表示与浮点数
    1.原码表示法:最高位是符号位,1为负,0为正。2.补码表示法:正数同原码。负数:在原码基础上,符号位不变,按位取反再加一(简便方法:最低位的1及其前的0不变,除了符号位以后全部按位取反......
  • 779_ 第K个语法符号
    Problem:779.第K个语法符号目录思路解题方法复杂度Code思路本题首先看范围,发现n的范围是1到30,则说明枚举法是行不通的,由此,我们必须想想其他的办法,观察后发现有两......
  • Python系列(1)- Python 简介、开发环境配置和基础语法
    Python是荷兰人GuidovanRossum(吉多·范罗苏姆,中国程序员称其为“龟叔”)在1990年初开发的一种解释型编程语言。Python源代码遵循GPL(GNUGeneralPublicLicense)......
  • Linux 中的硬链接和符号链接
    https://linux265.com/news/7471.html类似Windows系统中的快捷方式,在Linux系统中它们叫链接,存在两种形式,一种是硬链接,一种是符号链接。通常,符号链接也被称为软链接,下......
  • sap shift语法
    shift xxxLEFTDELETINGLEADING / RIGHTDELETINGTRAILINGmask语法。xxx中的第一或最后一个字符出现在mask中,则xxx左移或者右移一位,然后继续判断最新的字符串的......
  • esp32-s3-st7796-lvgl8
    1、先按照文档步骤,将基础框架搭建好https://blog.csdn.net/qq_20540901/article/details/1236086552、然后遇到一些花屏、显示不正确等等问题,使用以下的sdkconfig创建默......
  • jsp语法与jsp基本知识点
    【jsp基本知识点】JSP全称是JavaServerPages,它和servlet技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP/Servlet规范。JSP实......
  • python 脚本实现bugly自动上传符号文件
    bugly更新之后,符号文件不再支持拖拽或者选择文件的方式上传了,官方提供了一个上传的工具包,通过buglyqq-upload-symbol.jar实现上传,每次上架app都需要手动去配置相关参数和组......
  • 去除不可作为文件名的特殊符号
    ///<summary>///去除特殊字符///</summary>///<paramname="text"></param>///<returns></returns>publicstaticst......