https://zerojudge.tw/ShowProblem?problemid=a465
https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3836
X
我先將田地轉為陣列 farm,以便後續更改紀錄
因為我用的方式是「只要當前是良田就在下一塊放稻草人」
farm[cur+1] = "I"
result += 1
所以在 farm 的最後加一個 [0] 是為了確保迴圈可以跑到最後一塊地
並且在最後一塊是良田的情況下,將稻草人放在下一位不會超出迴圈(可以當成插在當前良田上)
如果當前是稻草人,就代表下一塊田地會受到保護,我們就將他改成虛無之地
好讓下一次判斷不會新增一個多餘的稻草人
有 line: 12 的判斷
'''
S = "..##.#."
.I##.#. cur = 0, result = 0
^
.I##.I. cur = 4, result = 1
^
.I##.I# cur = 5, result = 2
^
'''
沒有 line: 12 的判斷
'''
S = "..##.#."
.I##.#. cur = 0, result = 0
^
.I##.I. cur = 4, result = 1
^
.I##.I. cur = 5, result = 2
^
.I##.II cur = 6, result = 3
^
'''
解二比較好理解,省去了解一紀錄農田的陣列,直接改用 while 迴圈判斷