一個用lua編寫的自定義函式

lt發表於2016-10-25

返回一組資料形成的字串中,以最小值開頭的子串,尾部再與前部拼接 感覺很笨拙,看怎麼優化。

s="1,22,133,4,0,100,-1"
function a(s1)
  st=1 --start pos
  minx=1000
  minp=1
  for i=1,100 do --find times is unknown
    pos=string.find(s1,',',st)
    if pos ~= nil then
      x=tonumber(string.sub(s1,st,pos-1))
    else
      x=tonumber(string.sub(s1,st))
    end
    print (i,x,st,pos)
    if x<minx then
      minx=x
      minp=st
    end
    if pos==nil then 
      break
    end
    st=pos+1
  end
  if minp==1 then
    s2=s1
  else
    s2=string.sub(s1,minp)..','..string.sub(s1,1,minp-2)
  end
  return s2
end
print(a(s))

現在還需要返回方向逆轉的字串,如'1,3,2,6,9'返回'1,9,6,2,3',應該怎麼寫?

相關文章