Coder Social home page Coder Social logo

ac3.2-cli-hackerrank's Introduction

CLI-Hackerrank

CLI-Hackerrank is a MacOS project designed for testing DS&A problems that require input from the terminal or from Standard Input (stdin). Hacker Rank has such a requirement but this project need not be limited to working on Hacker Rank problems. It also has the benefits of being a quick, lightweight and debuggable
environment (i.e. with breakpoints) to work through a problem.

How it works

This command line app is driven by an event loop. Each iteration of the loop prompts the user to choose a function (one function per problem) to run and then prompts the user for inputs. The called function could optionally further describe the inputs.

while true {
    print("Enter a function, choices are: ", terminator: "")
    for k in funk.keys {
        print(k, terminator: " ")
    }
    print()
    
    if let functionName = readLine(),
        let function = funk[functionName] { // pulling the function from the dictionary
        print("Enter inputs")
        function() // calling the function
    }
    else {
        print("That's not a valid function")
    }
}

In an effort to make the program easily extensible, all functions are registered to a dictionary named funk. The key is a name or nickname of the function and the value is the function itself.

var funk: [String:()->Void] = [:]

After defining a function that will run a test case, add it with a name to the dictionary.

func solveMeFirst() {
    // read integers line by line
    let a = Int(readLine()!)!
    let b = Int(readLine()!)!
    
    // Hint: Type print(a + b) below
    print(a+b)
}
funk["solve"] = solveMeFirst // add this function to the dictionary
                             // note that "solve" can be any string whereas solveMeFirst *is* the function

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.