Remove Comments

remove_comment:从c程序中删除多行和单行注释的c程序 remove_comment 删除多行和单行注释的c程序从c程序中删除文件中可用的注释,当您运行该程序时,该程序将被程序删除,输出将显示在控制台上 立即下载

this problem needs to be dealed character by character each line, as there’re multi-cases.

I just copy one solution here.

PS: new followers increase.

Steps:
Iterate each line from the input document.
Inside the line, iterate each character of this line, check below conditions one by one
if in scope & meet “/”: you are not in scope from now
if in scope & meet “//”: add the string to list
if in scope: add character to the string, then if it is the end of the line, add the string to list
if NOT in scope & meet “
/”: you are in scope again, then if it is last 2 characters of line, add the string to list
Summary:
If in scope, you have to beware if signs of “/” or “//” first.
Otherwise, you can collect the characters.
If not in scope, you have to beware if signs of “
/” to get you back to scope

import java.util.ArrayList;
import java.util.List;

class Solution {

    private void addStToList(List<String> rl , StringBuilder sb){
        if(sb.length()>0){
            rl.add(sb.toString());
            sb.setLength(0);
        }
    }

    public List<String> removeComments(String[] source) {
        List<String> rl = new ArrayList<>();

        boolean inScope = true;
        StringBuilder sb = new StringBuilder();

        for (String line : source) {
            char[] ar = line.toCharArray();
            int m = ar.length;
            int i = 0;
            while (i < m) {
                // System.out.println("char="+ar[i]);
                if(inScope&&(i +1<m)&&("/*".equals(line.substring(i, i + 2)))){
                    inScope=false;
                    i+=2;
                }else if(inScope&&(i +1<m)&&("//".equals(line.substring(i, i + 2)))){
                    addStToList(rl, sb);
                    break;
                }else if(inScope){
                    sb.append(ar[i]);
                    if(i==m-1) addStToList(rl, sb);
                    i++;
                }else if(!inScope&& (i +1<m) && ("*/".equals(line.substring(i, i + 2))) ){
                    inScope=true;
                    if(i==m-2) addStToList(rl, sb);
                    i+=2;
                }else{
                    i++;
                }
                
            }

        }


        return rl;

    }
}
【C语言基础】野指针与空指针 全网最接地气的C语言野指针介绍,此处对于野指针与空指针知识点做一些简要的介绍,作者实属初学,写博客也是作者学习的一个过程,难免文章中有内容理解不到位或者有不当之处,还请朋友们不吝指正,希望大家多多给予支持,赠人玫瑰,手有余香! 文章目录一:野指针1.1 :野指针的成因2.1 :规避野指针二:空指针 一:野指针 概念:野指针就是指向的内存地址是未知的(随机的,不正确的,没有明确限制的)。 说明:指针变量也是变量,是变量就可以任意赋值。但是,任意数值赋值给指针变量没有意义,因为这样的指针就成了野指针,此指针指向 阅读详情

相关推荐

Ubuntu 20.04下Cube-Studio云原生平台单机部署全攻略(附避坑指南)

本文详细介绍了在Ubuntu 20.04系统上单机部署Cube-Studio云原生平台的完整流程,包括环境准备、Docker配置、Rancher与Kubernetes集群部署以及Cube-Studio核心组件安装。特别提供了官方文档未涵盖的实战技巧和常见问题解决方案,帮助开发者高效完成部署并避免常见陷阱。

weixin_29313423的博客 465

代码去除注释Remove Comments、合并行Join Lines、代码压缩Minify等vscode功能

代码去除注释Remove Comments、合并行Join Lines、代码压缩minify等vscode功能

wzp20092009的博客 2289

「企业级智能体」LangChain4j Multi-Agent:角色分离 + 协同编排实战

在大部分 Java 项目里,“接入大模型Controller 收到一个 question调用大模型接口拿到 answer把结果原样丢回前端这种玩法可以叫「高配搜索框模式一个 Agent 要写 Prompt、要查数据库、还要改写文案,太忙了不同角色(创作者、编辑、审稿人)的职责混在一起,难以维护想复用其中一段能力(比如只要润色)也不方便把大任务拆成多个 “角色清晰的 Agent”,再编排它们像流水线一样协同完成任务。CreativeWriter:负责创作故事。

OFFTime_we的博客 1549

【LeetCode 算法】Remove Comments 删除注释-模拟

字符串/* 表示一个块注释,它表示直到下一个(非重叠)出现的*/之间的所有字符都应该被忽略。(阅读顺序为从左到右)非重叠是指,字符串/*/并没有结束块注释,因为注释的结尾与开头相重叠。我们保证每一个块注释最终都会被闭合, 所以在行或块注释之外的/*总是开始新的注释。,那么字符要么在注释内,要么不在注释内。字符串// 表示行注释,表示//和其右侧的其余字符应该被忽略。同样,如果字符串/*出现在行或块注释中也会被忽略。在 C++ 中有两种注释风格,行内注释和块注释。如果字符串//出现在块注释中会被忽略。

Cui's Blog 636

智能体异常行为检测-基于行为序列的异常模式识别技术【附代码】

在多智能体系统(Multi-Agent Systems, MAS)中,智能体之间的行为协调与自主决策是系统稳定运行的关键。然而,当某个智能体因策略偏移、环境变化或潜在攻击而出现**异常行为(Abnormal Behavior)**时,整个系统可能陷入混乱或崩溃。

一键难忘的博客 1146

第一节:Vben Admin 最新 v5.0 (vben5) + Python Flask 快速入门

vben5 快速入门。 Vben Admin 框架新出的版本V5.5.4,而之前的Vben Admin 2.x 目前已存档,仅进行重大问题修复。之前在2.x版本曾经简单完成了一版专栏文章,当时也是收获了一些好评和建议。本次决定在v5 版本基础上再完成一次前后端的搭建。希望大家继续多多支持。项目精简后,再次启动项目,执行 pnpm run dev点击登录,可以看到接口报错,现在前端请求的后端有报错,下一节处理这部分逻辑。

cuiwin的专栏 7074

RemoveComments的实现

遇到的问题: 在第一次实现的时候,没有注意到使用缓冲流写入数据的时候会清空原有的数据,大忌!!! 改进方法: 1.在缓冲流读数据过程中,使用stringBuffer的append()方法把判断为不是//的字符保存起来。在使用缓冲流写数据时作为write方法参数传进去。 2.判断是否为//的方法:使用trim()方法去除首位空格,再使用startsWith("//")判断读到字符是不是以//开始。 if(!line.trim().startsWith("//")) { sb.append(lin.

菜鸟在路上 716

海康威视嵌入式最全面试题及参考答案(3万字长文)

主营业务:提供包括前端摄像头、后端存储设备、显示控制设备等在内的全方位视频监控解决方案。市场地位:在全球范围内享有较高的市场份额,在安防领域具有较强的竞争力。技术创新:持续投入研发,拥有多项核心技术和专利,特别是在视频处理算法、人工智能等方面取得了显著成果。社会责任:积极参与公共安全项目,为智慧城市、交通管理等领域提供技术支持和服务。国际业务:除了国内市场外,海康威视的产品和服务也销往全球多个国家和地区。面向对象编程。

大模型大数据攻城狮的专栏 1765

leetcode 722. Remove Comments 移除代码注释 + 简单状态机 + 有点烦但是需要细心

Given a C++ program, remove comments from it. The program source is an array where source[i] is the i-th line of the source code. This represents the result of splitting the original source code strin...

JackZhangNJU的专栏 1497

【实验】ENSP 实战:酒店有线 + 无线三层组网全配置(VLAN 规划 + AC/AP+SSID 绑定)

三层架构:出口路由器 → 核心交换机 → 汇聚交换机 → 接入交换机 / AP / 终端。

jundao1997的专栏 431

Sigrity Power Tree如何进行直流压降仿真分析操作指导

Sigrity Power Tree模式可以用于前仿真,在没有layout文件的情况下对电源进行直流压降仿真分析,用于评估原理图设计以及器件选型是否合理。Model:设置为Equal Current,设置为等电源模型,意思该负载每个电源pin都是等电流的。Current:设置每个负载的电流,U30为3A,U3-U6各为1A。Nominal Current:设置能够承载的最大电流,设置为10A。Upper/ Lower Tol:设置为压降范围为5%Output Current:设置输出电流为10A。

weixin_54787054的博客 732

【remove-comments-plugin】解决uniapp打包后存在注释问题

UniApp开发中生产环境打包时保留注释会导致代码体积增大和潜在信息泄露。通过remove-comments-plugin工具可在打包后清除注释:1)安装插件并配置执行脚本;2)使用HBuilderX完成H5打包;3)运行命令移除含版本关键词的注释。需注意处理前确保打包完成,并可通过参数调整过滤规则。该方案有效精简代码并提升安全性。

Didizisama的博客 349

基于Cesium实现,动态水面+大坝排水动画

一、绘制面状水域,使用水波纹理,进行渲染,水体透明,可以看到底色。三、使用粒子系统,将喷泉改变方向,加上重力设置,实现排水动画。二、绘制线状三维体,用作模拟大坝拦截效果。四、最后,模拟水位上升,进行淹没分析,

一醉千秋的专栏 1420

722. Remove Comments

722. Remove Comments方法1: Given a C++ program, remove comments from it. The program source is an array where source[i] is the i-th line of the source code. This represents the result of splitting the o...

wilzxu的博客 255

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

722 Remove Comments

Given a C++ program, remove comments from it. The program source is an array where source[i] is the i-th line of the source code. This represents the result of splitting the original source code strin...

dongbeier的博客 266

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

gcc remove comments

#define TRACE(FMT, ...) \ /*kprintf ("c%u %s[%d]: " FMT, cpuId, __FUNCTION__, __LINE__, ##__VA_ARGS__)*/ /* externs */ extern irqHandle_t sysIrqConnect (size_t irq, irqHandler_t func, size_t a

ssmale的专栏 1083

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【leetcode】722. Remove Comments

题目如下: Given a C++ program, remove comments from it. The programsourceis an array wheresource[i]is thei-th line of the source code. This represents the result of splitting the original source c...

weixin_33733810的博客 311

StrollingWolf Comments Remove

StrollingWolf 是一款非常小巧的代码注释,一键批量清理工具。不到100kb的大小。 支持c,cpp,h,js,php,java,c#等类C语言的代码注释清理。 支持右键菜单绑定 下载最新版:http://oltag.com:8080/yaolixing/18/00/13/StrollingWolf.rar (96kb) 1.Support c,cpp, h,hpp,cxx,...

weixin_30730053的博客 216

[leetcode] 722. Remove Comments

Description Given a C++ program, remove comments from it. The program source is an array where source[i] is the i-th line of the source code. This represents the result of splitting the original sourc...

Learning from the mistakes 237

Remove Nested Comments.

Comments can be single line using //, or multiple line using /* */ We can use two flags to make the begin and end of two types of comments. string removeComments(string str) { string res; bool s

ActiveCoder的博客 379

【Leetcode】722. Remove Comments

题目地址: https://leetcode.com/problems/remove-comments/ 给定一个C++代码,要求将所有的注释删除。有两种注释,一种是单行注释,该注释以"//"开头,并且会注释掉所有"//"之后的字符;另一种是多行注释,该注释以"/*"开头,一直到下一个最近的"*/"为止,题目保证对于任何一个"/*"都会有对应的"*/"与之配对。要求将所有注释删除后返回C++代码。题目保证输入里不会存在引号和转义符,只要遇到"/*"就可以认为是注释开始。如果某行全是注释,则产生了空行,返回不

数学、算法爱好者的博客 433

Leetcode——722. Remove Comments

题目原址 https://leetcode.com/problems/remove-comments/description/ 题目描述 给定一段代码段,其中包括注释部分,注释分为两种个://和/* */,现要求将代码段中的注释部分删除返回只有有效代码部分 如:输入source = ["/*Test program */", "int main()", "{ ", " // var...

想当厨子的程序媛 976
上一篇: Map Sum Pairs
下一篇: Network Delay Time
寂寞灵魂
博客等级 码龄15年 111粉丝 284原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值