使用"pencil"在网格上"Drawing"数字

"Drawing" Numbers on a grid using a "pencil"

本文关键字:Drawing 数字 pencil 使用 网格      更新时间:2023-10-16

如何处理此问题?说明如下:

想象一下一个正方形的网格。现在使用以下命令"绘制"数字(0-9):

  • U-在顶部一个正方形处画一条线
  • D-在底部一个正方形处画一条线
  • L-在左边一个正方形处画一条线
  • R-在右边一个正方形处画一条线
  • ^-把"铅笔"从"纸"上拿下来
  • _-把"铅笔"放在"纸"上

输入:

第一行:int N,表示要检查的数字数量接下来的N行由一个字符串组成,该字符串决定命令的顺序示例:

2
UL^D_RDLR^U
D^LLDRR_U

输出:

3 1

输出一行数字,用一个空格分隔。

我希望我解释得足够好(英语不是我的第一语言)。

这里有一种可能的方法。

将命令序列转换为线段序列。为您必须识别的每个数字预先计算一个线段数组。(请记住,6和9可以用两种不同的方式表示!)

现在发明一种方法来比较两个线段阵列,假设

  • 图片中片段的顺序无关紧要
  • 分段方向无关紧要
  • 绝对坐标不重要,但相对坐标重要
  • 如果线段大于零,则绘制的次数无关紧要

当需要比较两个值,而这些值的某些方面无关紧要时,常见的策略是转换两个值以使这些方面处于其规范形式。例如,当字符大小写无关紧要时,要比较两个字符串,可以将两个字符串都转换为大写,这将是不区分大小写比较的规范形式。你的任务是为每一个列举的无关紧要的东西想出一个规范的形式。