Highest and Lowest
In this little assignment you are given a string of space separated numbers, and have to return the highest and lowest number.
Example:
1 |
Kata.HighAndLow("1 2 3 4 5"); // return "5 1" |
Notes:
- All numbers are valid Int32, no need to validate them.
- There will always be at least one number in the input string.
- Output string must be two numbers separated by a single space, and highest number is first.
1 |
sub high-and-low($str) { |
Vowel Count
Return the number (count) of vowels in the given string.
We will consider a, e, i, o, and u as vowels for this Kata.
The input string will only consist of lower case letters and/or spaces.
1 |
sub vowel-count($str) { |
or
1 |
sub vowel-count($str) { |
or use trans method:
1 |
sub vowel-count($str) { |
Ones and Zeros
Given an array of one’s and zero’s convert the equivalent binary value to an integer.
Eg: [0, 0, 0, 1] is treated as 0001 which is the binary representation of 1.
Examples:
1 |
Testing: [0, 0, 0, 1] ==> 1 |
However, the arrays can have varying lengths, not just limited to 4.
1 |
sub ones-and-zeros(@a) { |
or
1 |
sub ones-and-zeros(@a) { |
Disemvowel Trolls
Trolls are attacking your comment section!
A common way to deal with this situation is to remove all of the vowels from the trolls’ comments, neutralizing the threat.
Your task is to write a function that takes a string and return a new string with all vowels removed.
For example, the string “This website is for losers LOL!” would become “Ths wbst s fr lsrs LL!”.
Note: for this kata y isn’t considered a vowel.
1 |
sub remove-vowel($str) { |
Find the odd int
Given an array, find the int that appears an odd number of times.
There will always be only one integer that appears an odd number of times.
sub find-ood(@a) {
}
Who likes it?
You probably know the “like” system from Facebook and other pages. People can “like” blog posts, pictures or other items. We want to create the text that should be displayed next to such an item.
Implement a function likes :: [String] -> String, which must take in input array, containing the names of people who like an item. It must return the display text as shown in the examples:
1 |
likes [] // must be "no one likes this" |
For 4 or more names, the number in and 2 others simply increases.
1 |
sub who-likes-it(@a) { |
Bit Counting
Write a function that takes an integer as input, and returns the number of bits that are equal to one in the binary representation of that number. You can guarantee that input is non-negative.
Example: The binary representation of 1234 is 10011010010, so the function should return 5 in this case
1 |
sub bit-counting($n) { |
Playing with digits
Some numbers have funny properties. For example:
89 –> 8¹ + 9² = 89 1
695 –> 6² + 9³ + 5⁴= 1390 = 695 2
46288 –> 4³ + 6⁴+ 2⁵ + 8⁶ + 8⁷ = 2360688 = 46288 * 51
Given a positive integer n written as abcd… (a, b, c, d… being digits) and a positive integer p we want to find a positive integer k, if it exists, such as the sum of the digits of n taken to the successive powers of p is equal to k * n. In other words:
Is there an integer k such as : (a ^ p + b ^ (p+1) + c ^(p+2) + d ^ (p+3) + …) = n * k
If it is the case we will return k, if not return -1.
Note: n, p will always be given as strictly positive integers.
1 |
digPow(89, 1) should return 1 since 8¹ + 9² = 89 = 89 * 1 |
近期评论