[4주 - 5일차] 학습 정리

okstring·2020년 11월 27일
0

codesquad-cocoa

목록 보기
20/25

String 인덱싱

var str = "abc"
var index = str.index(str.startIndex, offsetBy: 0)
print(str[index])
// "a"

글자수가 작은 String 찾기 in Array

var longest = arr.sort(
    function (a, b) {
        return b.length - a.length;
    }
)[0];

Linked List

public class LinkedListNode<T> {
    var value: T
    var next: LinkedListNode?
    weak var previous: LinkedListNode?
    
    public init(value: T) {
        self.value = value
    }
}

public class LinkedList<T> {
    public typealias Node = LinkedListNode<T>
    
    private var head: Node?
    
    public var isEmpty: Bool {
        return head == nil
    }
    
    public var first: Node? {
        return head
    }
    
    public var last: Node? {
        guard var node = head else {
            return nil
        }
        
        while let next = node.next {
            node = next
        }
        return node
    }
    
    public func append(value: T) {
        let newNode = Node(value: value)
        if let lastNode = last {
            newNode.previous = lastNode
            lastNode.next = newNode
        } else {
            head = newNode
        }
    }
    
    public var count: Int {
      guard var node = head else {
        return 0
      }
    
      var count = 1
      while let next = node.next {
        node = next
        count += 1
      }
      return count
    }

}

[reference](

profile
step by step

0개의 댓글