Skip to content

Instantly share code, notes, and snippets.

View stevencch99's full-sized avatar
🙌
Face the music

Steven C. stevencch99

🙌
Face the music
View GitHub Profile
def primeString(s)
(s + s).index(s, 1) == s.size
end
function primeString(s) {
return (s + s).indexOf(s, 1) == s.length;
}
function primeString(s) {
// 將字串重複的部份切成一個規律的陣列
let spArr = s.split(s[0]);
// 切掉不要的頭部空元素
spArr.shift();
// 宣告 不重複計數器
let falseCount = 0;
// 將各個元素和它們出現的次數存成 key-value pair
let tCounter = {};
spArr.forEach(x => { tCounter[x] = (tCounter[x] || 0) + 1; });

[CodeWars] 解題:Simple Fun #116: Prime String

This is a 6kyu Kata on CodeWars (https://www.codewars.com), that I used to practice programing skill.

Codewars 是我在走跳的刷題網站,相關介紹請參考 透過 codewars 修練 Swift 解題技巧 by @彼得潘的 iOS App Neverland

上面的題目分為最簡單的 8 kyu 到最難的 1 kyu,送交答案之後就可以看到其他 Code Warriors 不同的解法和各種奇思妙想。

今天來談談這讓我徹夜難眠的一題:難度 6 kyu 的

class Greeter
attr_reader :greeting
def initialize(greeting)
@greeting = greeting
end
def greet(subject)
"#{greeting}, #{subject}!"
end
to_camel = :capitalize.to_proc
add_header = -> val { "Title: " + val }
strip_space = :strip.to_proc
format_as_title = add_header << to_camel << strip_space
format_as_title[" \thello world\n"]
# "Title: Hello world"
double_then_square = square << double
double_then_square[2] # => 16
square_then_double = square >> double
square_then_double[2] # => 8
(square >> double)[2] # => 8
class Greeter
attr_reader :greeting
def initialize(greeting)
@greeting = greeting
end
def greet(subject)
"#{greeting}, #{subject}!"
end
double_p = proc { |number| return number * 2}
double_p[2] # => LocalJumpError (unexpected return)
double = lambda { |number| number * 2 }
double = -> (number) { return number * 2 }
double[2] # => 4
double[2, 3] # => ArgumentError (wrong number of arguments (given 2, expected 1))