除了外链 还有什么办法使网站提高排名,正规网站建设制作,比较好的国外网站建设公司,免费网页制作模板2023-08-03每日一题
一、题目编号
722. 删除注释二、题目链接
点击跳转到题目位置
三、题目描述
给一个 C 程序#xff0c;删除程序中的注释。这个程序source是一个数组#xff0c;其中source[i]表示第 i 行源码。 这表示每行源码由 ‘\n’ 分隔。
在 C 中有两种注释风…2023-08-03每日一题
一、题目编号
722. 删除注释二、题目链接
点击跳转到题目位置
三、题目描述
给一个 C 程序删除程序中的注释。这个程序source是一个数组其中source[i]表示第 i 行源码。 这表示每行源码由 ‘\n’ 分隔。
在 C 中有两种注释风格行内注释和块注释。 字符串// 表示行注释表示//和其右侧的其余字符应该被忽略。 字符串/* 表示一个块注释它表示直到下一个非重叠出现的*/之间的所有字符都应该被忽略。阅读顺序为从左到右非重叠是指字符串/*/并没有结束块注释因为注释的结尾与开头相重叠。 第一个有效注释优先于其他注释。 如果字符串//出现在块注释中会被忽略。 同样如果字符串/*出现在行或块注释中也会被忽略。 如果一行在删除注释之后变为空字符串那么不要输出该行。即答案列表中的每个字符串都是非空的。
样例中没有控制字符单引号或双引号字符。
比如source “string s “/* Not a comment. */”;” 不会出现在测试样例里。
此外没有其他内容如定义或宏会干扰注释。
我们保证每一个块注释最终都会被闭合 所以在行或块注释之外的/*总是开始新的注释。
最后隐式换行符可以通过块注释删除。 有关详细信息请参阅下面的示例。
从源代码中删除注释后需要以相同的格式返回源代码。
示例1 示例2 提示:
1 source.length 1000 source[i].length 80source[i] 由可打印的 ASCII 字符组成。每个块注释都会被闭合。给定的源码中不会有单引号、双引号或其他控制字符。
四、解题代码
class Solution {
public:vectorstring removeComments(vectorstring source) {vectorstring res;string new_line ;bool in_block false;for (auto line : source) {for (int i 0; i line.size(); i) {if (in_block) {if (i 1 line.size() line[i] * line[i 1] /) {in_block false;i;}} else {if (i 1 line.size() line[i] / line[i 1] *) {in_block true;i;} else if (i 1 line.size() line[i] / line[i 1] /) {break;} else {new_line line[i];}}}if (!in_block new_line ! ) {res.push_back(new_line);new_line ;}}return res;}
};
五、解题思路
(1) 采用模拟来解决问题。