记忆在二维平面上执行行走,从原点开始。他得到了一个带有运动方向的字符串s:
· “L”表示他应该向左移动一个单位。
· “R”表示他应该向右移动一个单位。
· “U”表示他应该向上移动一个单位。
· “D”表示他应该向下移动一个单位。
但现在记忆想在原点结束。为此,他有一个特殊的三叉戟。这个三叉戟可以用“L”、“R”、“U”或“D”中的任何一个替换s中的任何字符。但是,由于他不想磨损三叉戟,因此他希望尽可能减少编辑次数。请告诉记忆他需要做的最小更改次数是多少,以产生一个字符串,当行走时,将在原点结束,或者如果没有这样的字符串。
RRU
-1
UDUR
1
RUUR
2
只有一行包含字符串s(1≤|s |≤100000),为记忆收到的指令。
如果存在满足条件的字符串,则输出单个整数,即所需的最小编辑次数。
如果无法更改序列,以便将内存带到原点,则输出-1。
RRU
-1
在第一个样例中,记忆被告知向右走,再向右走,最后向上走。容易得出,更改这些指令返回来原点是不可能的。
在第二个样例中,记忆被告知向上走,再向下,再向上,最后向右走。一种可能的解决方案是将s更改为“LDUR”。此字符串更改 1 次使记忆返回原点,且为可能的最小值。