練習8 kyu的簡單題:
Exclamation marks series #2: Remove all exclamation marks from the end of sentence
題目是把字串最後連續的驚嘆號(!)去掉,但要注意,只去除最後連續的,
如果不在最後連續,不用去掉。
我的寫法一開始是:
local function remove_marks(s)
local a = ''
for i = #s, 1, -1 do
if "!" ~= s[i] then
a = string.sub(s, 1, i)
return a
end
end
return a
end
return remove_marks;
注意,這邊Lua跟Python的語法不一樣,
if "!" ~= s[i] then
除了Lua的不等於是~以外,
此時的s[i]是回傳nil,不是回傳s的第i個字元,
所以必需改寫如下:
local function remove_marks(s)
local a = ''
for i = #s, 1, -1 do
ss = string.sub(s, i, i)
if "!" ~= ss then
a = string.sub(s, 1, i)
return a
end
end
return a
end
return remove_marks;
沒有留言:
張貼留言