c++ 注释有两种,一种是 // 另一种是 /**/
简单理解就是把所有的注释内容清空,然后只保留未注释内容
思路(模拟):因为代码是一行一行的记录下来的,遍历每一行代码。有两种情况,第一种,如果遍历前两个字符分别是 / ,* 使用标记,进入注释区。接着继续遍历该行剩下内容,如果接下来两个字符,分别为 * ,/ 将标记置为为注释区,然后继续遍历该行剩下内容。如果接下来的两个字符是 /,/直接break,进行下一轮遍历。
cpp
class solution{
public:
vector<string> func_ans(vector<string> str){
vector<string> ans;
string tem = "";
bool isblock = false;
for(auto x : str){
for(int i = 0; i < x.size(); ++i){
if(isblock){
if(i + 1 < x.size()&& x[i] == '*' && x[i + 1] == '/'){isblock = false; i++;}
}else{
if(i + 1 < x.size()&&x[i] == '/' && x[i + 1] == '*'){isblock = true; i++;}
else if(i + 1 < x.size() &&x[i] =='/' && x[i + 1] =='/'){break;}
else{tem += x[i]; i++;}
}
}
if(!isblock && tem != ""){ans += tem;}
}
return ans;
}
}