アルゴリズムテスト[模擬]受けてみた
[問題文]
Find longest sequence of zeros in binary representation of an integer.
[考えたアルゴリズム]
- 配列A,B,Cを用意する
- 与えられた数値Nを二進数に変換する
- 変換した数値を文字として扱い、1文字ずつ区切り配列Aに追加する
- For Loop(文字列"0"と"1"で条件分岐)
- "0"の場合、配列Bに"0"を追加する
- "1"の場合、配列Bと配列Cの要素数を比較して、Bが多ければCを上書き
- 配列Bを空にする
- 配列Cの要素数を返す
[書いたコード]
public func solution(_ N : Int) -> Int {
//property
var charArray = [String]()
var finalCounter = [String]()
var prepareCounter = [String]()
// To 2 digits(of type String)
var binaryNumStr = String(N, radix: 2)
//Split chars and put them into the array
charArray = binaryNumStr.characters.map { String($0) }
//Loop
for charNum in 0..<charArray.count {
if charArray[charNum] == "0" {
prepareCounter.append("0")
} else {
let preNum = prepareCounter.count
let finalNum = finalCounter.count
//comparison
if preNum > finalNum {
finalCounter = prepareCounter
}
//empty preArray
prepareCounter = []
}
}
return finalCounter.count
}
[結果]
一応100点もらえました。もっと勉強しようと思います。
Swiftで10進数から2進数へ変換
var binaryNumStr = String(N,radix: 2)
AlamofireImageで簡単に画像の読み込み
AlamofireImageとは
AlamofireImage is an image component library for Alamofire.
1.CocoaPods
source 'https://github.com/CocoaPods/Specs.git' platform :ios, '10.0' use_frameworks! target '<Your Target Name>' do pod 'AlamofireImage', '~> 3.3' end
2.Pod install
$ pod install
3.Usage
import AlamofireImage
UIImageView.af_setImage(withURL: URL(url))
urlがString型の場合は
UIImageView.af_setImage(withURL: URL(string: url))
UIImageで正円[Swift]
ユーザープロフィールなどで正円を作りたいとき
- UIImageViewのサブクラスを作る
- 作成したクラス内で以下のコードを書く
override func layoutSubviews() {
super.layoutSubviews()
layer.cornerRadius = self.frame.width / 2
}
Swiftのアクセス制御
5種類のアクセス制御
- open(モジュールの情報を取得すればどこからでもアクセスできる)
- public(基本openと同じ。異なるのは、サブクラスの作成、上書きの定義がそのクラスを定義したモジュール内のみで可能という点。)
- internal(何も指定していない場合のデフォルト。インポートの必要はない。)
- fileprivate(定義済みのファイルのみで利用可能。他のファイルからはアクセスできない)
- private(クラスとかの内部でのみ利用可能)
例
private var num = Int()
private func getRandomNum() {
}
などなど。
しっかり使い分けていきましょう------