frugghi/swiftlcs
SwitLCS provides an extension of `Collection` that finds the indexes of the longest common subsequence with another collection.
:package: Installation
CocoaPods
CocoaPods is the dependency manager for Swift and Objective-C Cocoa projects. It has over ten thousand libraries and can help you scale your projects elegantly.
Add this to your Podfile:
use_frameworks!
pod 'SwiftLCS'Carthage
Carthage builds your dependencies and provides you with binary frameworks, but you retain full control over your project structure and setup.
Add this to your Cartfile:
github "Frugghi/SwiftLCS"Swift Package Manager
The Swift Package Manager is a tool for managing the distribution of Swift code. It’s integrated with the Swift build system to automate the process of downloading, compiling, and linking dependencies.
Add SwiftLCS to your Package.swift dependencies:
import PackageDescription
let package = Package(
dependencies: [
.Package(url: "https://github.com/Frugghi/SwiftLCS.git", majorVersion: 1, minor: 3)
]
)Manual
Include SwiftLCS.swift into your project.
:book: Documentation
The API documentation is available here.
:computer: Usage
Import the framework:
import SwiftLCSString
let x = "abracadabra"
let y = "yabbadabbadoo"
let z = x.longestCommonSubsequence(y) // abadabaArray
let x = [1, 2, 3, 4, 5, 6, 7]
let y = [8, 9, 2, 10, 4, 11, 6, 12]
let z = x.longestCommonSubsequence(y) // [2, 4, 6]Indexes
let x = [1, 2, 3, 4, 5, 6, 7]
let y = [8, 9, 2, 10, 4, 11, 6, 12]
let diff = x.diff(y)
// diff.commonIndexes: [1, 3, 5]
// diff.addedIndexes: [0, 1, 3, 5, 7]
// diff.removedIndexes: [0, 2, 4, 6]:warning: Objective-C
Object comparison of Objective-C objects is done through the isEquals: method, so be sure that the implementations is correct otherwise SwiftLCS will not return the correct indexes.
:page_facing_up: License [](https://raw.githubusercontent.com/Frugghi/SwiftLCS/master/LICENSE)
SwiftLCS is released under the MIT license. See LICENSE for details.
Package Metadata
Repository: frugghi/swiftlcs
Default branch: master
README: README.md