13 Ocak 2022 Perşembe

Quest_28_Implement_strStr

public class Solution
{
    public static void Main()
    {
        var haystack = "aaaaa";
        var needle = "bba";

        Solution solution = new Solution();
        var result = solution.StrStr(haystack, needle);
    }

    public int StrStr(string haystack, string needle)
    {
        if (string.IsNullOrEmpty(needle))
            return 0;

        int len = haystack.Length - needle.Length;
        for (int i = 0; i <= len; i++)
        {
            int j = i;
            foreach (var ch in needle)
            {
                if (ch != haystack[j])
                    break;
                j++;
            }

            if (j - i != needle.Length)
                continue;

            return i;
        }

        return -1;
    }
}

12 Ocak 2022 Çarşamba

LeetCode Question 20: Remove Element - O(n) Complexity

public class Solution
{
    public int RemoveElement(int[] nums, int val)
    {
        int increase = 0;

        for (int i = 0; i < nums.Length; i++)
        {
            if (nums[i] != val)
            {
                nums[increase] = nums[i];
                increase++;
            }
        }
        return increase;
    }
}

10 Ocak 2022 Pazartesi

LeetCode Question 20: Valid Parentheses - O(n) Complexity with Stack

public class Solution
{
    public bool IsValid(string input)
    {
        Stack<char> stack = new();

        if (input.Length == 1)
        {
            return false;
        }

        for (int i = 0; i < input.Length; i++)
        {
            if (input[i] == '(')
            {
                stack.Push(')');
                continue;
            }

            if (input[i] == '{')
            {
                stack.Push('}');
                continue;
            }

            if (input[i] == '[')
            {
                stack.Push(']');
                continue;
            }

            if (stack.Count == 0)
            {
                return false;
            }

            var pop = stack.Pop();

            if (pop != input[i])
            {
                return false;
            }
        }

        if (stack.Count == 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

8 Ocak 2022 Cumartesi

LeetCode Question 14: Longest Common Prefix

public class Solution
{
    public static void Main()
    {
        string[] array = new string[] { "fligg6", "flowerrrr11", "flo" };

        Solution solution = new Solution();
        var result = solution.LongestCommonPrefix(array);
    }

    public string LongestCommonPrefix(String[] strs)
    {
        var result = strs[0];

        for (int i = 1; i < strs.Length; i++)
        {
            while (strs[i].StartsWith(result) == false)
            {
                result = result.Substring(0, result.Length - 1);
            }
        }
        return result;
    }
}

Leetcode etiketler - tags

Başlık: LeetCode Question NUMBER: NAME - O(n) Complexity with Stack) tags: LeetCode Questions, LeetCode Question NUMBER: NAME - O(n) Complexity, LeetCode NAME algoritma sorusu çözümü

LeetCode Question 13: Roman to Integer

public class Solution
{
    public static void Main()
    {
        var romanText = "MXLIV";
        Solution solution = new Solution();
        var result = solution.RomanToInt(romanText);
    }

    public static Dictionary<char, int> _dictionary = new Dictionary<char, int>
    {
        {'I', 1},
        {'V', 5},
        {'X', 10},
        {'L', 50},
        {'C', 100},
        {'D', 500},
        {'M', 1000}
    };

    public int RomanToInt(string romanText)
    {
        if (romanText.Length <= 0)
        {
            throw new Exception();
        }

        var total = 0;
        var last = 0;

        foreach (var letter in romanText)
        {
            var currentLetterValue = TranslateToNumber(letter);

            if (currentLetterValue > last)
            {
                total -= last * 2;
            }

            total += currentLetterValue;
            last = currentLetterValue;
        }

        return total;
    }

    public static int TranslateToNumber(char c)
    {
        return _dictionary[c];
    }
}

7 Ocak 2022 Cuma

LeetCode Algorithms Question 9: Palindrome Number

public class Solution
{
    public static void Main()
    {
        var number = 161;

        Solution solution = new Solution();
        var result = solution.IsPalindrome(number);
    }

    public bool IsPalindrome(int number)
    {
        if (number < 0)
        {
            return false;
        }

        var remainder = 0;
        var reversedNumber = 0;

        var nonEditedNumber = number;

        while (number > 0)
        {
            remainder = number % 10;
            number = number / 10;
            reversedNumber = reversedNumber * 10 + remainder;
        }

        if (reversedNumber == nonEditedNumber)
        {
            return true;
        }

        return false;
    }
}

LeetCode Question 1: Two Sum

namespace Quest_1_TwoSum
{
    public class Solution
    {
        public static void Main()
        {
            int[] array = { 5, 7, 2, 6, 5, 1, 9 };
            int target = 10;

            Solution solution = new Solution();
            var result = solution.TwoSum(array, target);
        }

        public int[] TwoSum(int[] array, int target)
        {
            Dictionary<int, int> dictionary = new();

            var arrayLength = array.Length;

            if (arrayLength < 2 || array == null)
            {
                return Array.Empty<int>();
            }

            for (int i = 0; i < arrayLength; i++)
            {
                var firstNumber = array[i];
                var secondNumber = target - firstNumber;

                if (dictionary.TryGetValue(secondNumber, out int secondNumberIndex))
                {
                    return new int[] { secondNumberIndex, i};
                }

                dictionary[firstNumber] = i;

            }
            return Array.Empty<int>();
        }
    }
}