首页 > 其他分享 >LeetCode -- 722. 删除注释

LeetCode -- 722. 删除注释

时间:2023-08-05 18:23:35浏览次数:47  
标签:pre && -- pos ++ while 722 str LeetCode

 利用双指针来进行删除操作

 

class Solution {
public:
    vector<string> removeComments(vector<string>& source) {
        string str;
        for(auto it : source) str += it + "'";

        int n = str.size();
        vector<string> res;
        int i = 0, j = 0;

        while(i < n) {
            if(i + 1 < n && str[i] == '/' && str[i + 1] == '/') {
                while(str[i] != '\'') i ++ ;
            } else if (i + 1 < n && str[i] == '/' && str[i + 1] == '*') {
                i += 2;
                while(!(str[i] == '*' && str[i + 1] == '/')) i ++ ;
                i += 2;
            } else {
                str[j ++ ] = str[i ++ ];
            }
        }

        str = str.substr(0, j);
        int pre = 0, pos = str.find("'");
        while(pos != -1) {
            string ss = str.substr(pre, pos - pre);
            if(ss.size()) res.push_back(ss);
            pre = pos + 1;
            pos = str.find("'", pre);
        }

        return res;

    }
};

 

标签:pre,&&,--,pos,++,while,722,str,LeetCode
From: https://www.cnblogs.com/zk6696/p/17608367.html

相关文章

  • [oeasy]python0079_控制序列_光标位置设置_ESC_逃逸字符_CSI
    光标位置回忆上次内容上次我们研究的比较杂类型转化进制转化捕获异常版本控制生成帮助文档变量的常用类型变量的生命周期控制 数据类型主要研究了两个字符串str 整型数字int  字符串型和整型数字型变......
  • Linux信号
    https://www.51cto.com/article/675743.html异步和同步的区别:同步可以理解成串行执行,每个任务执行有先后顺序;异步则是并行执行,你做你的事,我干我的事情,相互独立信号是异步的,一个进程不必通过任何操作来等待信号的到达。事实上,进程也不知道信号到底什么时候到达。一般来说,我们只......
  • golang 接口的概念
    先上代码定义一个接口Retriever两个接口的实现infra.gopackagemainimport( "fmt" "robot.com/Robot/learngo/testing" //"robot.com/Robot/learngo/infra")//?:Somethingthatcan"Get"typeretrieverinterface{ Get(string)s......
  • 什么是方法
    何为方法?System.out.println(),那么它是什么呢?Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其它地方被引用计方法的原则:方法的本意是功能块,就是现实某个功能的语句块集合。我......
  • 父组件传值给子组件
    app.vue<template> <divid="main">  <router-view    :test_value="this.test_value"    ></router-view> </div></template>exportdefault{name:'App',componen......
  • 高并发系统架构
    可以分为以下6点:系统拆分缓存MQ分库分表读写分离ElasticSearch系统1.系统拆分将一个系统拆分为多个子系统,用dubbo来搞。然后每个系统连一个数据库,这样本来就一个库,现在多个数据库,不也可以扛高并发么。2.缓存大部分的高并发场景,都是读多写少,那你完全可以在数据库和......
  • FreeRTOS 基于 ARMv8-M 对 MPU 的应用
    一、前言ARMv8-M支持MPU,FreeRTOS也添加了对这些MPU的应用代码。这里用来记录FreeRTOS对MPU应用方式的探究结果。二、ArmV8-MMPU介绍ARMv8-MMPU支持每个安全状态(non-secure和secure)0-8个区域的配置。MPU的主要特性如下:区域最小大小为32字节,最大为4GB,但必......
  • 2023.8.5 周六:DDL--操作表
    1#查询当前数据库的所有表2showtables;34#查询表的结构5descfunc(表的名称);67#创建表注:最后一行不加逗号8creattable表名9(10字段名1,数据类型1,11字段名2,数据类型2,12...13...14字段名n,数据类型n15);1617例,要创......
  • IP和数字互相转换
    IP和数字互相转换目录IP和数字互相转换IP转数字数字转ipIP转数字原理:IP的每段是0~255的整数,把每段转为8位的二进制后,再组合起来得到一个32位的二进制数,把这个32位的二进制数转换为十进制数以ip1.2.3.4为例分为4段1.2.3.4拆分为二进......
  • 第一章 python语言基础
    1.5Python中的对象1.5.1对象的身份一般用对象在内存中的存储位置作为对象的身份,用于唯一标识对象。用id()获取对象的标识a=123id(a)1.5.2对象的类型对象的类型表示对象可以存储什么类型的值用type()获取对象的类型type(a)1.5.3对象的值对象所表示的数据用p......