給乙個 c++ 程式,刪除程式中的注釋。這個程式source
是乙個陣列,其中source[i]
表示第i行原始碼。 這表示每行原始碼由\n
分隔。
在 c++ 中有兩種注釋風格,行內注釋和塊注釋。
字串//
表示行注釋,表示//和其右側的其餘字元應該被忽略。
字串/*
表示乙個塊注釋,它表示直到*/
的下乙個(非重疊)出現的所有字元都應該被忽略。(閱讀順序為從左到右)非重疊是指,字串/*/並沒有結束塊注釋,因為注釋的結尾與開頭相重疊。
第乙個有效注釋優先於其他注釋:如果字串//出現在塊注釋中會被忽略。 同樣,如果字串/*出現在行或塊注釋中也會被忽略。
如果一行在刪除注釋之後變為空字串,那麼不要輸出該行。即,答案列表中的每個字串都是非空的。
樣例中沒有控制字元,單引號或雙引號字元。比如,source = "string s = "/* not a comment. */
";
" 不會出現在測試樣例裡。(此外,沒有其他內容(如定義或巨集)會干擾注釋。)
我們保證每乙個塊注釋最終都會被閉合, 所以在行或塊注釋之外的/*總是開始新的注釋。
最後,隱式換行符可以通過塊注釋刪除。 有關詳細資訊,請參閱下面的示例。
從源**中刪除注釋後,需要以相同的格式返回源**。
示例 1:
輸入:示例 2:source = ["/*test program /", 「int main()」, "」]
示例**可以編排成這樣:
/*test program /
int main()
輸出: [「int main()」,""]
編排後:
int main()
解釋:第 1 行和第 6-9 行的字串 / 表示塊注釋。第 4 行的字串 // 表示行注釋。
輸入:注意:source = [「a/comment", 「line」, "more_comment/b」]
輸出: [「ab」]
解釋: 原始的 source 字串是 「a/comment\nline\nmore_comment/b」, 其中我們用粗體顯示了換行符。刪除》注釋後,隱含的換行符被刪除,留下字串 「ab」 用換行符分隔成陣列時就是 [「ab」].
source的長度範圍為[1, 100].
source[i]的長度範圍為[0, 80].
每個塊注釋都會被閉合。
給定的原始碼中不會有單引號、雙引號或其他控制字元。
開始時,可以直接按字元來逐個處理,由於塊注釋是多行注釋,所以一旦之前有了塊注釋的起始符,當前行的處理方式就不同了,所以需要乙個變數blocked
來記錄當前是否為塊注釋狀態,初始化為false;
其次,建立空字元out
,用來儲存去除注釋後的字元,開始遍歷整個**的每一行,遍歷每一行中的每乙個字元,若當前字元是最後乙個字元,說明不會再有注釋了,將當前字元加入out
中,否則取出當前位置和下乙個位置的兩個字元,如果其正好是"/*
",說明之後的部分都是塊注釋了,我們將blocked
賦值為true
,然後指標向後移動乙個,明明兩個字元,為啥只移動乙個呢?因為另乙個可以在for
迴圈中的++i
移動;
再次,如果當前兩個字元正好是"//",說明當前行之後都是注釋,我們並不care後面有啥,所以可以直接break
掉當前行;如果都不是,說明當前字元是**,將其加入out
中;
最後,來看看blocked
為true
的情況,說明之後的內容都是塊注釋的內容,此處唯一關心的是有沒有結束符"*/",所以還是先做判斷,如果當前不是最後乙個字元,說明至少還有兩個字元,然後取出兩個字元,如果正好是塊注釋結束符,那麼我們將標識重置為false
,指標要後移動乙個。若當前行遍歷完後,如果out
不為空,且blocked
為false
,則將out
存入結果res
中。
class
solution
}else}}
if(!out.
empty()
&&!blocked)
}return res;}}
;
Oacle刪除後註刪表及其殘留刪除
1.關閉oracle所有的服務。可以在windows的服務管理器中關閉 2.開啟登錄檔 regedit 開啟路徑 hkey local machine system currentcontrolset services 刪除該路徑下的所有以oracle開始的服務名稱,這個鍵是標識oracle在win...
記事狗盲注及任意檔案刪除
0x1 盲注 0x2 任意檔案刪除 0x1 盲注 在modules ajax topic.mod.php中 function group fields and gid g id query this databasehandler query sql fields info query getrow...
LeetCode 刪除重複項
使用vector.size 時,在for迴圈中要寫i不要寫i。因為當vector的size為0時,size 函式返回值是無符號整型,這時vec.size 1是乙個正數,會導致 vec i 訪問越界。題解 首先考慮了暴力解法,兩個迴圈尋找相等的元素,找到後將其就地改為 1,記錄下個數。再一次迴圈把不是...