Official

C - String Delimiter Editorial by nok0


左から順に括られた文字かを判定し、括られた文字でなくかつ , ならば . で置き換えるという操作が行えればよいです。

括られた文字であるかの判定ですが、括られた文字であることの同値な条件として、例えばその文字の左に が奇数個存在するという条件があります。この条件を用いると、線形時間での解法が得られます。実装例もご確認ください。

実装例(Python):

n = int(input())
s = list(input())
lef_even = True
for i in range(n):
    if lef_even and s[i] == ",":
        s[i] = "."
    if s[i] == '"':
        lef_even = not lef_even
print("".join(s))

posted:
last update: