0%

codewar-取字串中間的文字

取一段字串中間的文字

1
2
3
4
5
6
7
Kata.getMiddle("test") should return "es"

Kata.getMiddle("testing") should return "t"

Kata.getMiddle("middle") should return "dd"

Kata.getMiddle("A") should return "A"

解題思考:從題目上看起來,要將每個字串分成單數或偶數,再針對個別去計算要取的index值

1.如果是單數,就將字串長度除以2再四捨五入,取到中間數

2.如果是偶數,將字串長度除以2再減掉1,加上字串長度除以2

3.雖然方法笨笨的,但有效XD

1
2
3
4
5
6
7
8
def get_middle(s)
arr = s.split('')
if arr.length.odd?
arr[((arr.length) / 2).round]
else
arr[(arr.length) / 2 - 1] + arr[(arr.length) / 2 ]
end
end

解題完之後看到很聰明的作法,一行就搞定!在這裡也跟大家分享~

1
2
3
def get_middle(s)
s[(s.size-1)/2..s.size/2]
end