「咦奇怪,今天夏天姐也沒來嗎?」
「對呀,他好像說要去忙一些事情。說讓我們兩個自己先解一些題目」
「喔⋯⋯好吧,我回家時自己解了這題」
class Solution {
fun restoreString(s: String, indices: IntArray): String {
val array = CharArray(s.length)
indices.forEachIndexed { i, num -> array[num] = s[i] }
return String(array)
}
}
「原來可以用 CharArray
,你真的對 Collection 這類物件好熟悉喔!
我自己是解了這一題」
1832. Check if the Sentence Is Pangram
class Solution {
fun checkIfPangram(sentence: String): Boolean {
val lettersMap = mutableMapOf<Char, Char>()
for(element in sentence) {
lettersMap[element] = ' '
}
return lettersMap.keys.size == 26
}
}
「嗯⋯⋯這題的 for
迴圈我會這樣寫」
class Solution {
fun checkIfPangram(sentence: String): Boolean {
val lettersMap = mutableMapOf<Char, Char>()
sentence.forEach { lettersMap[it] = ' ' }
return lettersMap.keys.size == 26
}
}
「原來如此,還有這一題」
class Solution {
fun getSum(a: Int, b: Int): Int {
var a = a
var b = b
while (b != 0) {
var carry = a and b
a = a xor b
carry = carry shl 1
b = carry
}
return a
}
}
「這類需要用到二進位的題目,我都覺得好難喔」曉欣有點睏洛的說。
「嗯⋯⋯這我也不知道,可能是因為之前大學教過了,所以對這些題目還是比較熟悉吧。
或許你再多多練習就可以拿手一點了?」
「好的⋯⋯」
「岔個題外話,你最近看樹的題目,還熟悉嗎?」
「對了!說到這個,我看到一題很有趣的題目!」
2236. Root Equals Sum of Children
「嗯⋯⋯等等!這題的樹只有三個節點嗎?那根本就不用⋯⋯」
「不用遞迴對吧!我也覺得很有趣」
class Solution {
fun checkTree(root: TreeNode?): Boolean = root?.`val` == root?.left?.`val`!! + root.right?.`val`!!
}
「Kotlin 檢查空值的方式真的很有趣,又是用 ?.
,又是用 !!
的」
「對呀,看《深入淺出》的教學,說這樣可以減少犯錯的機會。不知道什麼時候可以找到程式相關的工作,實際體會看看」
「沒問題的!你現在寫程式的能力那麼好了,相信你很快就可以找到工作的!」
「這段話好像是夏天姐會跟我們說的話喔」
「對呀」菁菁嘆了口氣「夏姐到底在忙什麼啊,神神秘秘的」