BlenderYjiraaの日記

iOS(Swift,Xcode), 3D(Blender), Android(Kotlin,Java)で学んだことを書いていきますー

アルゴリズムテスト[模擬]受けてみた

[問題文]

Find longest sequence of zeros in binary representation of an integer.

 

[考えたアルゴリズム]

  1. 配列A,B,Cを用意する
  2. 与えられた数値Nを二進数に変換する
  3. 変換した数値を文字として扱い、1文字ずつ区切り配列Aに追加する
  4. For Loop(文字列"0"と"1"で条件分岐)
  5. "0"の場合、配列Bに"0"を追加する
  6. "1"の場合、配列Bと配列Cの要素数を比較して、Bが多ければCを上書き
  7. 配列Bを空にする
  8. 配列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点もらえました。もっと勉強しようと思います。

 

 

AlamofireImageで簡単に画像の読み込み

 AlamofireImageとは

github.com

 

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]

ユーザープロフィールなどで正円を作りたいとき

  1. UIImageViewのサブクラスを作る
  2. 作成したクラス内で以下のコードを書く

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() {

}

などなど。

しっかり使い分けていきましょう------