Shortcut to seniority

Home
Go to main page

Section level: Junior
A journey into the programming realm

Section level: Intermediate
The point of no return

Section level: Senior
Leaping into the unknown
Go to main page
A journey into the programming realm
The point of no return
Leaping into the unknown
Given two strings A and B of equal lengths, containing only lower case letters, your job is to count the minimum number of changes required on string A to make it equal to string B.
Given n a positive number bigger than 1, count the number of trailing zeros of the factorial result.
Assuming n is 10, the factorial result will be 1*2*3* … * 10.
Given a linked list and having access only to the head element, print the reverse list without using recursion or extra allocated space.
A permutation is a rearrangement of the elements. A string of length n has n! permutations.
Assuming our string is ABC, the following permutations are possible: {ABC, ACB, BAC, BCA, CAB, CBA}.
We can see that we started with A and shuffled the letters, then we moved B as first position and did the same, and then the same way for C.
Having Longest Common Sequence in mind – calculate the longest increasing subsequence (the length of the longest subsequence in which all elements are sorted in increasing order).
Given an array of jobs (each with their own deadline and with a given profit only if the job is finished before the deadline), and knowing that every job takes at least one unit of time (minimum deadline is 1) and that only one job can be scheduled at a time – Create an algorithm to maximize total profit.
Given a directed graph, that does not contain a cycle – count the number of paths that exist between two vertices.
I suggest installing Ubuntu on your personal computer, or searching online for a playground / practical course. There are a few basic commands that you must know by heart, such as copying or moving files, creating and removing files and directories, reading the content of a file, executing binaries or changing the access permissions of a file.
The next thing you should do after you exercise with such commands, is to write them into a script and execute it.
This will get you used to creating scripts for repetitive commands.
Python has increased in popularity lately, and I recommend learning it, because it excels at small scripts, due to its powerful libraries which allows some rapid development. Take a text file with lot of information from it and:
Vertex: Node containing data
Edge: The line that connects two vertices
Cycle: Cycles occur when nodes are connected in a way that they forms a closed structure.
Cycle: Cycles occur when nodes are connected in a way that they forms a closed structure.
Self loop: An edge that connects a vertex to itself (source = destination).
Divide et impera (Divide and conquer): Break the problem into sub-problems and solve them each recursively.
Negative weight edge refer to edges with a negative cost.