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
@stevencch99
stevencch99 / big-o.md
Created November 24, 2023 03:28 — forked from PJUllrich/big-o.md
Big-O Time Complexities for Elixir Data Structures

Big-O Time Complexities for Elixir data structures

Map [1]

Operation Time Complexity
Access O(log n)
Search O(log n)
Insertion O(n) for <= 32 elements, O(log n) for > 32 elements [2]
Deletion O(n) for <= 32 elements, O(log n) for > 32 elements
@stevencch99
stevencch99 / .dockerignore
Created July 28, 2020 11:31 — forked from yizeng/.dockerignore
An example .dockerignore file for Rails
.git
.gitignore
# Created by https://www.gitignore.io/api/git,ruby,rails,jetbrains+all
# Edit at https://www.gitignore.io/?templates=git,ruby,rails,jetbrains+all
### Git ###
# Created by git for backups. To disable backups in Git:
# $ git config --global mergetool.keepBackup false
*.orig
[
{
"city": "New York",
"growth_from_2000_to_2013": "4.8%",
"latitude": 40.7127837,
"longitude": -74.0059413,
"population": "8405837",
"rank": "1",
"state": "New York"
},
@stevencch99
stevencch99 / install_font_adobe_source_code_pro.sh
Created September 4, 2019 06:06 — forked from enzinier/install_font_adobe_source_code_pro.sh
Install font Adobe Source Code Pro on Ubuntu 16.04 LTS
#!/bin/sh
# Userland mode (~$USER/), (~/).
# ~/.fonts is now deprecated and that
#FONT_HOME=~/.fonts
# ~/.local/share/fonts should be used instead
FONT_HOME=~/.local/share/fonts
echo "installing fonts at $PWD to $FONT_HOME"
mkdir -p "$FONT_HOME/adobe-fonts/source-code-pro"
namespace :db do
desc 'Reset counter cache of tasks count in project.'
task update_tasks: :environment do
print '開始更新任務數'
Project.all.each do |p|
Project.reset_counters(p.id, :tasks)
print '.'
end
puts '更新完成!'
end
create_table "projects", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "tasks_count", default: 0
end
create_table "tasks", force: :cascade do |t|
t.string "name"
t.integer "project_id"
t.datetime "created_at", null: false
console.log(primeString("asdf")); // should be true
console.log(primeString("abac")); // should be true
console.log(primeString("qiuefgqiuefgqiuefg")); // should be false
console.log(primeString("zkvjhuj")); // should be true
function primeString(s, count = 1) {
// 如果字串中有重複的模式,最少也會重複 1 次,故迭代超過字串長度的一半還沒找到就不用找了
if(count > s.length / 2) { return true }
// 每次迭代將字串的一小塊,設定為分割陣列的符號 chunk
let chunk = s.slice(0, count)
// 被 chunk 切過的部分會變成陣列中的空元素,此行判斷是不是能夠將陣列切成重複的小塊
// 如果切完後全部的陣列元素都是空的,代表字串被 chunk 整除,恭喜找到規律。
let grouped = s.split(chunk).every(i => i === '')
def prime_string(s)
s !~ /^(.+)(\1+)$/
end
function primeString(s) {
return !/^(.+)\1+$/.test(s)
}