V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rabbbit
V2EX  ›  问与答

算法题考试,有道题最多只过了 35%,求个思路

  •  
  •   rabbbit · 19 天前 · 570 次点击

    没找到原题是哪道题,另外答题的时候看不到测试用例,只能看到通过了百分之多少。

    大概题目如下,凭记忆写的,没敢截图怕判作弊。


    数有多少个语句

    语句以;号结尾,例如 COMMON balabala "abcde"; 算一个
    语句可以换行,例如如下代码算一个

    COMMON a,
      b,
      c;
    

    语句里允许有字符串,用 "" 或者 '' 表示
    允许使用 \ 表示转义, 例如

     "abc\"de" 
    

    语句允许有注释,注释以 -- 开头一直到行尾
    字符串里的 -- 不算注释
    空语句不计入数量,例如 COMMON; ; 只算一个

    输入:

    COMMON balabal "abcde"; -- command balabal
    COMMON
      AND a,
      b;
    

    输出:

    2
    

    下面代码是我写的,最多只过了 35%,是思路不对还是看漏了题有没注意的地方?
    这个有原题或类似的题吗?

    https://gist.github.com/Aaron-Bird/677e3c87a380c9a5d6c715708222ed0a

    第 1 条附言  ·  19 天前
    忘了还有个条件:
    最后一个语句允许不用;结尾
    第 2 条附言  ·  19 天前
    知道哪写错了,唉
    hwdq0012
        1
    hwdq0012  
       19 天前   ❤️ 1
    我写 c++的 json 序列化时其实有写过这种东西, 本质是就是对前面不是"\\"的计数, 如果计到是单数就说明在“”号里,双数就是不在" "里, 根据这个条件去判断 -- 注释和;结束就好了
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5304 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 08:47 · PVG 16:47 · LAX 01:47 · JFK 04:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.