Thursday, June 9, 2016

StrSymmetryPoint in Java & C# - Codility 100%

Link task : https://codility.com/programmers/task/str_symmetry_point/
The idea is checking if string S is having an odd element or event. If it's an even then we should return -1. Then we start comparing every char from the middle to the start index and to the end of the string char index. if we find a different char the return -1. If not the we return index of middle char of the string.

Java Solution :
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
public static int strSymPoint(String S)
 {
  if(S.length() == 0 || S.length()%2 == 0) return -1;
  int toStart = (S.length()/2)-1;
  int toEnd = (S.length()/2)+1;
  
  while(toStart >= 0)
  {
   if(S.charAt(toStart) != S.charAt(toEnd)) return -1;
   toStart -= 1;
   toEnd += 1;
  }
  return S.length()/2;
 }

Result :

C# solution :
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
 public static int strSymPoint(string S)
        {
            if (S.Length == 0 || S.Length % 2 == 0) return -1;
            int toStart = (S.Length / 2) - 1;
            int toEnd = (S.Length / 2) + 1;

            while (toStart >= 0)
            {
                if (S[toStart]!= S[toEnd]) return -1;
                toStart -= 1;
                toEnd += 1;
            }
            return S.Length / 2;
        }

Result :

TreeHeight in Java & C# - Codility

Task : https://codility.com/programmers/task/tree_height/

Solution for Java :
1
2
3
4
5
6
7
8
class Solution {
    public int solution(Tree T) {
        // write your code in Java SE 8
        if(T == null) return -1;
  
  return 1+Math.max(solution(T.l), solution(T.r));
    }
}

Result :
Solution for C# :
1
2
3
4
5
6
public int solution(Tree T) {
        // write your code in C# 6.0 with .NET 4.5 (Mono)
        if(T == null) return -1;
  
  return 1+Math.Max(solution(T.l), solution(T.r));
    }

Result :