OD统一考试(C卷)
分值: 200分
题解: Java / Python / C++

题目描述
有一个文件, 包含以一定规则写作的文本, 请统计文件中包含的文本数量
规则如下
- 文本以";“分隔,最后一条可以没有”;",但空文本不能算语句,比如"COMMAND A; ;"只能算一条语句.
注意, 无字符/空白字符/制表符都算作"空"文本 - 文本可以跨行, 比如下面, 是一条文本, 而不是三条
COMMAND A
AND
COMMAND B; - 文本支持字符串, 字符串为成对的单引号(')或者成对的双引号(“), 字符串可能出现用转义字符(\)处理的单双引号(比如"your input is: \”")和转义字符本身, 比如
COMMAND A “Say \“hello\””; - 支持注释, 可以出现在字符串之外的任意位置, 注释以"–“开头, 到换行结束, 比如
COMMAND A; – this is comment
COMMAND – comment
A AND COMMAND B;
注意, 字符串内的”–", 不是注释
输入描述
文本文件</

本文介绍华为OD统一考试C卷的一道题目,要求统计遵循特定规则的文本数量。规则包括以';'分隔文本,考虑字符串、转义字符和注释。解决方案可以通过有限状态机实现,分别处理正常文本、双引号字符串、单引号字符串和注释状态。提供了Java、Python和C++的题解代码。
订阅专栏 解锁全文
2592

被折叠的 条评论
为什么被折叠?



