SENI #034
SENI #034
SENI 034
Algoritma
292. Permainan Nim
Kesulitan: Mudah
Anda sedang memainkan Game Nim berikut dengan teman Anda: Ada tumpukan batu di atas meja, setiap kali salah satu dari Anda bergiliran mengeluarkan 1 hingga 3 batu. Siapa yang berhasil mengeluarkan batu terakhir, dialah pemenangnya. Anda akan mengambil giliran pertama untuk menghilangkan batu-batu itu.
Anda berdua sangat pintar dan memiliki strategi permainan yang optimal. Tuliskan fungsi untuk menentukan apakah Anda dapat memenangkan permainan berdasarkan jumlah batu di tumpukan.
Contoh:
Input: 4
Output: false
Explanation: If there are 4 stones in the heap, then you will never win the game;
No matter 1, 2, or 3 stones you remove, the last stone will always be
removed by your friend.
Solusi
perjalanan bisnis
Bahasa: cepat
class Solution {
func canWinNim(_ n: Int) -> Bool {
return (n % 4 != 0)
}
}
8. String ke Integer (atoi)
Kesulitan: Sedang
Terapkan <span style="display: inline;">atoi</span> yang mengonversi string menjadi bilangan bulat.
Fungsi ini pertama-tama membuang karakter spasi putih sebanyak yang diperlukan hingga karakter non-spasi pertama ditemukan. Kemudian, mulai dari karakter ini, ambil tanda plus atau minus awal opsional diikuti dengan digit numerik sebanyak mungkin, dan interpretasikan sebagai nilai numerik.
String dapat berisi karakter tambahan setelah karakter yang membentuk bilangan integral, yang diabaikan dan tidak berpengaruh pada perilaku fungsi ini.
Jika urutan pertama karakter bukan spasi di str bukan bilangan integral yang valid, atau jika tidak ada urutan seperti itu karena str kosong atau hanya berisi karakter spasi putih, tidak ada konversi yang dilakukan.
Jika tidak ada konversi valid yang dapat dilakukan, nilai nol akan dikembalikan.
Catatan:
- Hanya karakter spasi
' 'yang dianggap sebagai karakter spasi. - Asumsikan kita berhadapan dengan lingkungan yang hanya dapat menyimpan bilangan bulat dalam rentang bilangan bulat bertanda 32-bit: [−2<sup>31</sup>, 2<sup>31 </sup>− 1]. Jika nilai numerik berada di luar rentang nilai yang dapat direpresentasikan, INT_MAX (2<sup>31 </sup>− 1) atau INT_MIN (−2<sup>31</sup>) akan dikembalikan.
Contoh 1:
Input: "42"
Output: 42
Contoh 2:
Input: " -42"
Output: -42
Explanation: The first non-whitespace character is '-', which is the minus sign.
Then take as many numerical digits as possible, which gets 42.
Contoh 3:
Input: "4193 with words"
Output: 4193
Explanation: Conversion stops at digit '3' as the next character is not a numerical digit.
Contoh 4:
Input: "words and 987"
Output: 0
Explanation: The first non-whitespace character is 'w', which is not a numerical
digit or a +/- sign. Therefore no valid conversion could be performed.
Contoh 5:
Input: "-91283472332"
Output: -2147483648
Explanation: The number "-91283472332" is out of the range of a 32-bit signed integer.
Thefore INT_MIN (−231) is returned.
Solusi
中规中矩的解法
Bahasa: cepat
class Solution {
func myAtoi(_ str: String) -> Int {
var newStr = str
for cha in newStr {//去除空格
if cha == " " {
newStr.remove(at:str.startIndex)
}
else{
break;
}
}
if newStr.count == 0 {
return 0;
}
var sign = 1
let first = newStr[newStr.startIndex]
if first == "+" {
sign = 1
newStr.remove(at:str.startIndex)
}
else if (first == "-"){
sign = -1;
newStr.remove(at:str.startIndex)
}
var result = 0
var temp = 0
for cha in newStr {
if cha < "0" || cha > "9" {
return result
}
temp = temp * 10 + (Int(String(cha)) ?? 0)
result = temp * sign
if result > Int(Int32.max) {
return Int(Int32.max)
}
else if result < Int(Int32.min) {
return Int(Int32.min)
}
}
return result
}
}
Ulasan
这篇文章讲的是Adaptor 适配器设计模式:
https://dandan2009.github.io/2019/10/30/design-patterns-by-tutorials-the-power-of-OOP-part-3/
Kiat
CocoaPods, instalasi pod, dan https://github.com/CocoaPods/Specs master分支到~/.cocoapods/repos目录下,但是由于国内环境问题导致 git clone https://github.com/CocoaPods/Specs adalah solusinya.
解决办法:
menggunakan git clone https://git.coding.net/CocoaPods/Specs.git, 或 https://gitclub.cn/CocoaPods/Specs
然后把Spesifikasi目录改名为master即可。~/.cocoapods/repos的目录层级如下:

https://git.coding.net/CocoaPods/Specs.git和 https://gitclub.cn/CocoaPods/Specs都是国内镜像,要快很多,还可以直接下载zip包,然后解压到~/.cocoapods/repos目录即可。
Bagikan
昨天看到一个小伙子因为停车费,堵住了一个停车场大门,事情的起因是,小伙子是早上8点进入的停车场,下午2点离场,停车场的收费标准是停车不足12小时收费5元,但是收费员确要10元,收费50 orang, 50 orang, orang yang berumur 12 tahun 10元,进场有门禁和摄像;估计很多人也遇到过,但是由于赶时间等原因,很多人不想为了5块钱和他们争吵,但是这次他们却遇perusahaan asuransi kesehatan; perusahaan asuransi kesehatan还是值得肯定的,生活中要多有这样的人,我们的生活或许会更美好; perusahaan asuransi kesehatan, perusahaan asuransi kesehatan, perusahaan asuransi kesehatan, perusahaan asuransi perusahaan asuransi, perusahaan asuransi kesehatan, perusahaan asuransi kesehatan 5 hari kerja, 5 hari kerja, 3 hari kerja, 5 hari kerja, 5 hari kerja, 5 hari kerja, 5 hari kerja, 5 hari kerja到这样的事都能站出来较真一下,维护规则,那么我们的生活会少很多藏污纳垢的地方。
What to read next
Want more posts about ARTS?
Posts in the same category are usually the best next step for reading more on this topic.
View same categoryWant to keep following #iOS?
Tags are useful for related tools, specific problems, and similar troubleshooting notes.
View same tagWant to explore another direction?
If you are not sure what to read next, return to the homepage and start from categories, topics, or latest updates.
Back home