gpt4 book ai didi

C# 配对 HTML 标签以检查它们是否正确平衡

转载 作者:行者123 更新时间:2023-12-02 19:32:30 28 4
gpt4 key购买 nike

感谢下面的提示

• 您需要一次遍历字符串一个字符(for 循环或 while 循环) 当您点击 < 时,您知道您已经点击了一个标签,因此存储该字符的位置

• 继续(最好是在子循环中)直到您点击 >,这是您的结束标记

• 现在检查> 之前的字符。是/吗?

• 是:查看堆栈顶部。该字符串与 < 和/> 之间的字符串相同吗?

如果是,则弹出该项目并跳出子循环(您找到了匹配项!)。

如果不是,则从该方法返回 false - 您的工作已完成(HTML 无效)。

• NO:然后将< 和> 之间的整个字符串压入堆栈并跳出此子循环,并继续主循环。正如 @seesharper 建议的,将上面的内容转换为伪代码,然后转换为 C#。祝您在学习编程之旅中一切顺利!

最佳答案

您当前的代码只是检查“{open}”是否完整,并且无论下一个标签是什么,也是否完整,而不是它与其关闭标签配对。

您需要使用字符串而不是字符进行操作。您将读取“{open}”和“{/open}”,并且需要对它们进行操作。

首先列出您的用例:

  1. 您从一个关闭标记开始 - 弄清楚如何识别它是一个关闭标记,然后当您尝试弹出空堆栈时,您知道它检查失败。

  2. 您从一个开放标记开始 - 弄清楚如何识别它是一个开放标记,然后将其推送到您的堆栈中。

  3. 您找到一个“完整标签” - 采用这种格式的“” - 找出如何识别这种类型的标签。不用做任何事情,一旦正确识别,他就不需要配对。

  4. 您连续遇到多个开放标签。将每个插入堆栈。

  5. 您遇到关闭标记 - 确定它是否与堆栈顶部元素正确配对 - 如果它们正确配对,则弹出并继续 - 如果没有正确配对,则失败。

  6. 您连续遇到多个结束标记。冲洗并重复 5,直到标签不匹配或者您有一个空堆栈和不匹配的关闭。

您当前的代码中有很多良好的逻辑,但需要对其进行扩展才能正确执行分配的任务。

注意:我故意不提供代码,而是提供一些逻辑来帮助您找到解决方案,因为这是一项家庭作业。您将几乎专门处理 1) 读取文件。 2)字符串。 3)堆栈。如果您需要查找,每个语法、属性和方法的资源都很容易获得。

此外,我使用了错误的大括号,因为只是标签没有显示,而且这是一个快速编辑。

关于C# 配对 HTML 标签以检查它们是否正确平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49417959/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com