sysprog
contributed by < sciyen
>
解題關鍵:
j >= 0
表示往下移動 j
步,因此切成兩部分看:
(n-1)
開始替換
n-j-1
~0
n-1
~j
(為舊資料範圍 +j
)0
~j-1
j < 0
表示往上移動 j
步,因此切成兩部分看:
0
開始替換
n-1
~j
n-j-1
~0
(為舊資料範圍 -j
)n-1
~n-j
重點在從 file 切割字串的 index 範圍,從 function definition
可以得知前者是 開始 index
,後者是 字串長度
開始 index(prev_start)
,因此長度為 目前 index(i)
- 開始 index
+ 1,也就是 i - prev_start + 1
。prev_start
:i
應為 \n
,因此下一個起點應為 i+1