#11 Codewars - Get the Middle Character (7 kyu)

閱讀時間約 2 分鐘

題目

原始題目

你將會得到一個單詞,你的任務是返回該單詞的中間字符。如果單詞的長度是奇數,則返回中間字符。如果單詞的長度是偶數,則返回中間的兩個字符。

#範例:
Kata.getMiddle("test") 應返回 "es"
Kata.getMiddle("testing") 應返回 "t"
Kata.getMiddle("middle") 應返回 "dd"
Kata.getMiddle("A") 應返回 "A" #輸入
一個長度在0 < str < 1000之間的單詞(字符串)。你不需要為此進行測試。這只是為了告訴你不需要擔心你的解決方案超時。

#輸出
以字符串表示的單詞的中間字符(字符)。

拆解流程

依據題意可整理出以下重點:

  • 目標:返回單詞的中間字串。
  • 規則:若字串長度為奇數,返回中間字串;若字串長度為偶數,返回中間兩個字符
  • 方法
  1. 可使用餘數特性來判斷單詞長度為奇數或偶數
  2. 透過流程判斷決定回傳的值

程式撰寫

function getMiddle(s) {
let start = 0;
let end = 0
if (s.length % 2 !== 0) {
start = Math.ceil(s.length / 2) - 1;
return s[start];
} else {
start = Math.ceil(s.length / 2 - 1);
end = start.ceil % 2 ? start : start + 2;
return s.slice(start, end);
}
}

改善寫法

三元運算子

function getMiddle(s) {
let middle = Math.floor(s.length / 2);
return s.length % 2 ? s[middle] : s.slice(middle - 1, middle + 1);
}


今天就介紹到這裡,如果大家有更好的寫法歡迎一起來討論~

7會員
30內容數
正在一點一滴學習程式,相信知識量總有一天會匯聚成大海,目前專門研究前端中。
留言0
查看全部
發表第一個留言支持創作者!
傑米的沙龍 的其他內容
在談到閉包前,要先談談範圍鏈,在 ES6 以前,變數透過 var 宣告,當時切分變數的最小單位為「函式」,有以下特性需要留意:內層可以取得外層的變數,但外層無法取得內層變數,在「定義」函式時就決定了範圍鏈,而非執行時
題目:完成解決方案,當第一個參數(String 型別)以第二個參數結尾時(也是 String 型別)返回 true。
這篇主要會透過 CDN 引入 Material Icons,並補足官方文件裡只有提到 Filled 類別的引用方式,但沒有提到其他類別,像是 Outlined、Rounded、Sharp、Two tone,另外還會提到如何透過偽元素加入 Material Icons,現在我們就來看看如何引入吧!
提升(Hoisting) 指的是在創造環境階段時就把變數準備好,這時值還沒被賦予到變數上。此類型的概念可以使用執行環境的「創造階段」與「執行階段」來理解。
圖片可以說是 HTML 元素中以不受控出名的元素了,在預設情況下,完全不受父容器影響,以下就來看看有哪些方法讓圖片依照你的想法變化吧。
網頁中經常需要引入外部資源,其中字型更是不可或缺,好看的字體會為網頁質感大加分,免費的網頁字型資源以 Google Fonts 最為常見,今天就來使用 Codepen 試看看如何引入字型吧。
在談到閉包前,要先談談範圍鏈,在 ES6 以前,變數透過 var 宣告,當時切分變數的最小單位為「函式」,有以下特性需要留意:內層可以取得外層的變數,但外層無法取得內層變數,在「定義」函式時就決定了範圍鏈,而非執行時
題目:完成解決方案,當第一個參數(String 型別)以第二個參數結尾時(也是 String 型別)返回 true。
這篇主要會透過 CDN 引入 Material Icons,並補足官方文件裡只有提到 Filled 類別的引用方式,但沒有提到其他類別,像是 Outlined、Rounded、Sharp、Two tone,另外還會提到如何透過偽元素加入 Material Icons,現在我們就來看看如何引入吧!
提升(Hoisting) 指的是在創造環境階段時就把變數準備好,這時值還沒被賦予到變數上。此類型的概念可以使用執行環境的「創造階段」與「執行階段」來理解。
圖片可以說是 HTML 元素中以不受控出名的元素了,在預設情況下,完全不受父容器影響,以下就來看看有哪些方法讓圖片依照你的想法變化吧。
網頁中經常需要引入外部資源,其中字型更是不可或缺,好看的字體會為網頁質感大加分,免費的網頁字型資源以 Google Fonts 最為常見,今天就來使用 Codepen 試看看如何引入字型吧。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
11.問曰:寸脈沉大而滑,沉則為實、滑則為氣,實氣相摶,血氣入藏即死,入府即愈,此為卒厥,何謂也?師曰:唇口青身冷,為入藏,即死;如身和汗自出,為入腑,即愈。 「問曰:寸脈沉大而滑,沉則為實、滑則為氣」,寸脈指的是上焦、胸陽,就是上焦受病了,「實」就是摸起來硬邦邦的,沒有彈性,血管裡面充滿了血
“你可以跟我解釋一下發生了什麼是嗎?”紫暮壓抑著怒氣,對著白鬧說著 就在白無奇他們去畫展時,白鬧正對著紫暮解釋 “簡單來說,就是你兒子把那道門打開了,而那頭大妖的妖氣把妖怪們引來了,為了我們,他就把獸矛拔出來了” “然後呢?”紫暮問道 “然後就沒了啊,怎麼了?”白鬧一臉理所當
  煙的臭味燻 得加爾眼睛乾燥,風扇運轉的葉片將其擴散至屋內的各處,酒的味道甜甜的,加爾不想嘗試,卻直勾勾地盯著喝著它的奶奶,她泛紅的臉龐。   「……」翻閱中文字典,她並不理解裡面在說什麼,只看得懂幾個字而已,羅馬拼音倒是可以讀懂。加爾喜歡書的感覺、味道還有形狀,重點是,可以不用說話。
Thumbnail
題目:你將會得到一個單詞,你的任務是返回該單詞的中間字符。如果單詞的長度是奇數,則返回中間字符。如果單詞的長度是偶數,則返回中間的兩個字符。
Thumbnail
「夏然呀﹗我買了你喜歡的和牛,還有大干貝。」 「謝謝葉媽媽﹗」 「你真乖﹗」輕捏了一下夏然的臉頰。「一大早就過來幫忙,買菜呀、醃肉呀…那像某個人一回來就趴在沙發上,什麼都不幹。」最後兩句明顯地是衝著親愛的女兒而來的。 「由她吧﹗她前陣子真的很忙,年後又要再宣傳了,就給她休息一下。反正我喜歡做菜。」
Thumbnail
八月的第一個禮拜五是Hubby的手術日,前一日Gill同Hubby入院,依誠誠醫師的預計住院兩周。手術當天Gill感覺Hubby的緊張不安,只能盡量安撫讓他知道Gill與家人會在手術房外等他。  中午後,護送的技師來推送Hubby到開刀房,被推進開刀房後醫生與Gill說:「放鬆約四小時就會出來了。」
Thumbnail
Hubby接受的是傳統開腹手術,近側胃癌的病患需做全胃切除以及D2淋巴廓清的標準手術。手術後將拿出的胃與淋巴進行病理化驗才有正確的病理報告。 從國內外網路的文章、經驗談等Gill學習到手術前加強免疫力與肌力的重要性。免疫力除了食物與維他命的攝取外,增強體力也不能忽視。開刀前兩周Gill除了幫Hubb
Thumbnail
由於這次需要動刀治療讓Gill與Hubby輾轉難眠了幾夜,因為積極治療 Hubby才有機會根除腫瘤。  一天的夜晚Hubby對Gill說他決定接受全胃切除手術。Gill不意外,因為Hubby是理性的人,他知道以他的臨床分期II A約有70% 的存活率,況且再拖延或許連70% 的生存率都沒有,更會連累
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
11.問曰:寸脈沉大而滑,沉則為實、滑則為氣,實氣相摶,血氣入藏即死,入府即愈,此為卒厥,何謂也?師曰:唇口青身冷,為入藏,即死;如身和汗自出,為入腑,即愈。 「問曰:寸脈沉大而滑,沉則為實、滑則為氣」,寸脈指的是上焦、胸陽,就是上焦受病了,「實」就是摸起來硬邦邦的,沒有彈性,血管裡面充滿了血
“你可以跟我解釋一下發生了什麼是嗎?”紫暮壓抑著怒氣,對著白鬧說著 就在白無奇他們去畫展時,白鬧正對著紫暮解釋 “簡單來說,就是你兒子把那道門打開了,而那頭大妖的妖氣把妖怪們引來了,為了我們,他就把獸矛拔出來了” “然後呢?”紫暮問道 “然後就沒了啊,怎麼了?”白鬧一臉理所當
  煙的臭味燻 得加爾眼睛乾燥,風扇運轉的葉片將其擴散至屋內的各處,酒的味道甜甜的,加爾不想嘗試,卻直勾勾地盯著喝著它的奶奶,她泛紅的臉龐。   「……」翻閱中文字典,她並不理解裡面在說什麼,只看得懂幾個字而已,羅馬拼音倒是可以讀懂。加爾喜歡書的感覺、味道還有形狀,重點是,可以不用說話。
Thumbnail
題目:你將會得到一個單詞,你的任務是返回該單詞的中間字符。如果單詞的長度是奇數,則返回中間字符。如果單詞的長度是偶數,則返回中間的兩個字符。
Thumbnail
「夏然呀﹗我買了你喜歡的和牛,還有大干貝。」 「謝謝葉媽媽﹗」 「你真乖﹗」輕捏了一下夏然的臉頰。「一大早就過來幫忙,買菜呀、醃肉呀…那像某個人一回來就趴在沙發上,什麼都不幹。」最後兩句明顯地是衝著親愛的女兒而來的。 「由她吧﹗她前陣子真的很忙,年後又要再宣傳了,就給她休息一下。反正我喜歡做菜。」
Thumbnail
八月的第一個禮拜五是Hubby的手術日,前一日Gill同Hubby入院,依誠誠醫師的預計住院兩周。手術當天Gill感覺Hubby的緊張不安,只能盡量安撫讓他知道Gill與家人會在手術房外等他。  中午後,護送的技師來推送Hubby到開刀房,被推進開刀房後醫生與Gill說:「放鬆約四小時就會出來了。」
Thumbnail
Hubby接受的是傳統開腹手術,近側胃癌的病患需做全胃切除以及D2淋巴廓清的標準手術。手術後將拿出的胃與淋巴進行病理化驗才有正確的病理報告。 從國內外網路的文章、經驗談等Gill學習到手術前加強免疫力與肌力的重要性。免疫力除了食物與維他命的攝取外,增強體力也不能忽視。開刀前兩周Gill除了幫Hubb
Thumbnail
由於這次需要動刀治療讓Gill與Hubby輾轉難眠了幾夜,因為積極治療 Hubby才有機會根除腫瘤。  一天的夜晚Hubby對Gill說他決定接受全胃切除手術。Gill不意外,因為Hubby是理性的人,他知道以他的臨床分期II A約有70% 的存活率,況且再拖延或許連70% 的生存率都沒有,更會連累