octree /
Myers
Implementation of myers diff algorithm in swift
Loading repository data…
Frugghi / repository
Swift implementation of the longest common subsequence (LCS) algorithm.
SwitLCS provides an extension of Collection that finds the indexes of the longest common subsequence with another collection.
The longest common subsequence (LCS) problem is the problem of finding the longest subsequence common to all sequences in a set of sequences (often just two sequences). It differs from problems of finding common substrings: unlike substrings, subsequences are not required to occupy consecutive positions within the original sequences.
The project is based on the Objective-C implementation of NSArray+LongestCommonSubsequence.
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 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"
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)
]
)
Include SwiftLCS.swift into your project.
The API documentation is available here.
Import the framework:
import SwiftLCS
let x = "abracadabra"
let y = "yabbadabbadoo"
let z = x.longestCommonSubsequence(y) // abadaba
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]
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]
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.
SwiftLCS is released under the MIT license. See LICENSE for details.
Selected from shared topics, language and repository description—not editorial ratings.
octree /
Implementation of myers diff algorithm in swift
wmcginty /
A simple implementation of Heckel's diffing algorithm in Swift
kazec /
Generic implementation of Paul Heckel's diff algorithm written in Swift