מפות שכיחות
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 8 מתוך 63.
מפת תדירויות שומרת כמה פעמים כל פריט מופיע. עבור כל קלט, קרא את המונה הנוכחי שלו או אפס, וכתוב בחזרה אחד נוסף. כך משלבים חיפוש בטוח, השמה ניתנת לשינוי ואיטרציה.
בתוך main:
val counts = mutableMapOf<String, Int>()
for (word in listOf("red", "blue", "red")) {
counts[word] = (counts[word] ?: 0) + 1
}
println(counts["red"])הספירה של red מוכנסת כ־1, ואז מתעדכנת ל־2.
תדירות חסרה מתחילה באפס לפני שמוסיפים את ההופעה הנוכחית.
אתגר
בינוניהשלימו את wordFrequency עם הפרמטרים words: List<String>, target: String. בנו מפת תדירויות והחזירו כמה פעמים target מופיע. ההתאמה רגישה לאותיות גדולות וקטנות.
אלא אם צוינו לעיל גבולות מחמירים יותר, אוספים מכילים לכל היותר 100 איברים בכל רמה, וארגומנטים של מספרים שלמים וערכים של מספרים שלמים באוספים הם בין -1000 ל-1000. טקסט שסופק לצורך ניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.
החזירו ערך מסוג Int. השאירו את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ואחריו האיברים, ומפה מתחילה במספר הרשומות שלה ואחריו כל מפתח וערך. רשימות מקוננות חוזרות על הפורמט של מספר איברים ואחריו איברים עבור כל שורה. ה-main שסופק מדפיס את הערך המוחזר ואחריו תו שורה חדשה אחד. רשימות משתמשות בפורמט הסטנדרטי של Kotlin עם סוגריים מרובעים; אל תדפיסו תוויות נוספות.
נסו בעצמכם
fun wordFrequency(words: List<String>, target: String): Int {
// כתבו כאן את הפתרון שלכם.
return 0
}
fun main() {
val wordsCount = readln().toInt()
val words = mutableListOf<String>()
for (i0 in 0 until wordsCount) {
val wordsItem = readLine().orEmpty()
words.add(wordsItem)
}
val target = readLine().orEmpty()
println(wordFrequency(words, target))
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4אוספים מקוננים
רשימות של רשימותמעבר על שורותסיכומים של שורותהשטחת רשימות מקוננותסיכום – שורות של מקומות ישיבה7צינורות עיבוד של אוספים
טרנספורמציה באמצעות Mapסינון ערכיםבדיקת כללי האוסףצבירה באמצעות Foldסיכום – סכומים מאושרים5פרויקט - ספר טלפונים
שמירת אנשי קשרחיפוש אנשי קשרתרגלו בעצמכם: Kotlin אונליין