Grid Mingguan
Termasuk bagian Logika dan Alur dalam perjalanan Swift di Coddy. Pelajaran 36 dari 56.
Saatnya mencetak kalender. Untuk setiap kebiasaan, tampilkan kisi tujuh karakter dengan X pada hari saat kebiasaan dilakukan dan . pada hari lainnya.
// days = [1, 3, 5]
// menghasilkan: X.X.X..Idiom yang berguna: susun grid sebagai array karakter, lalu ubah menjadi String sekali.
var slots = Array(repeating: ".", count: 7)
for d in days {
slots[d - 1] = "X"
}
let row = slots.joined()days dimulai dari indeks 1 (Mon = 1), tetapi array Swift dimulai dari indeks 0, jadi kurangi 1 saat menetapkan nilai. Hari di luar rentang akan menyebabkan program crash, jadi percayai format input.
Tantangan
SedangBaca satu baris input: daftar entri habit:day yang dipisahkan koma. Buat dictionary seperti sebelumnya, lalu cetak satu baris untuk setiap habit (diurutkan berdasarkan abjad) dengan format:
<habit> |<grid>| <count>dengan grid adalah string tujuh karakter X/. dan count adalah jumlah hari unik saat habit tersebut dilakukan.
Untuk input read:1,read:3,read:5,workout:2,workout:4, output-nya adalah:
read |X.X.X..| 3
workout |.X.X...| 2Coba sendiri
var habits: [String: [Int]] = [:]
let ops = readLine()!.components(separatedBy: ",")
for op in ops {
let parts = op.components(separatedBy: ":")
let day = Int(parts[1])!
if !(habits[parts[0], default: []].contains(day)) {
habits[parts[0], default: []].append(day)
}
}
// TODO: buat grid 7 slot untuk setiap kebiasaan; cetak '<name> |<grid>| <count>'
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Mendalami string
Jumlah dan indeksHuruf besar, huruf kecil, dan hapus spasiMencari dalam stringMemisahkan dan menggabungkanMengganti substringUlasan: Memeriksa nama pengguna4set
Membuat setGabungan dan IrisanSelisih dan Selisih SimetrisHimpunan Bagian dan Himpunan SupersetRingkasan: Filter Tag7Proyek: Pelacak Kebiasaan
Gambaran Umum ProyekTandai Selesai2Rentang dan Langkah
Rentang Tertutup vs Setengah TerbukaLangkahMetode RentangRentang dalam SwitchRangkuman: Kisi KalenderLatihan sendiri: Playground Swift