Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Болтушкин Л.С., 712-2, LeetCode

.pdf
Скачиваний:
0
Добавлен:
27.05.2024
Размер:
514.29 Кб
Скачать

Болтушкин Л.С., 712-2, LeetCode

Было решено 10 задач, которые были предложены в самом начале,

после регистрации на платформе – 9 уровней easy и 1 уровня medium.

Рисунок 1 – Результаты решений

Задание 1 – на тему: Roman to Integer

Код, который прошел проверку:

public class Solution

{

public int RomanToInt(string s)

{

Dictionary<char, int> romanValues = new Dictionary<char, int>() { {'I', 1},

{'V', 5}, {'X', 10}, {'L', 50}, {'C', 100}, {'D', 500}, {'M', 1000}

};

int result = 0;

for (int i = 0; i < s.Length; i++)

{

if (i < s.Length - 1 && romanValues[s[i]] < romanValues[s[i + 1]])

{

result -= romanValues[s[i]];

}

else

{

result += romanValues[s[i]];

}

}

return result;

}

}

Рисунок 2 – Успешность прохождения задания 1

Задание 2 – на тему: Palindrome Linked List

Код, который прошел проверку:

public class Solution

{

public bool IsPalindrome(ListNode head)

{

List<int> values = new List<int>(); ListNode currentNode = head;

//перебираем весь список, сохраняя значения в массиве while (currentNode != null)

{

values.Add(currentNode.val); currentNode = currentNode.next;

}

//проверяем, является ли массив палиндромом

for (int i = 0; i < values.Count / 2; i++)

{

if (values[i] != values[values.Count - i - 1]) return false;

}

return true;

}

}

Рисунок 3 – Успешность прохождения задания 2

Задание 3 – на тему: Ransom Note

Код, который прошел проверку:

public class Solution

{

public bool CanConstruct(string ransomNote, string magazine)

{

Dictionary<char, int> magazineChars = new Dictionary<char, int>();

foreach (char c in magazine)

{

if (magazineChars.ContainsKey(c))

{

magazineChars[c]++;

}

else

{

magazineChars[c] = 1;

}

}

foreach (char c in ransomNote)

{

if (!magazineChars.ContainsKey(c) || magazineChars[c] == 0)

{

return false;

}

else

{

magazineChars[c]--;

}

}

return true;

}

}

Рисунок 4 – Успешность прохождения задания 3

Задание 4 – на тему: Fizz Buzz

Код, который прошел проверку:

public class Solution

{

public IList<string> FizzBuzz(int n)

{

List<string> output = new List<string>(); for (int i = 1; i <= n; i++)

{

if (i % 3 == 0 && i % 5 == 0)

{

output.Add("FizzBuzz");

}

else if (i % 3 == 0)

{

output.Add("Fizz");

}

else if (i % 5 == 0)

{

output.Add("Buzz");

}

else

{

output.Add(i.ToString());

}

}

return output;

}

}

Рисунок 5 – Успешность прохождения задания 4

Задание 5 – на тему: Middle of the Linked List

Код, который прошел проверку:

public class Solution

{

public ListNode MiddleNode(ListNode head)

{

ListNode slow = head; ListNode fast = head;

while (fast != null && fast.next != null)

{

slow = slow.next;

fast = fast.next.next;

}

return slow;

}

}

Рисунок 6 – Успешность прохождения задания 5

Задание 6 – на тему: The K Weakest Rows in a Matrix

Код, который прошел проверку:

public class Solution

{

public int[] KWeakestRows(int[][] mat, int k)

{

int

m

=

mat.Length;

int

n

=

mat[0].Length;

int[]

strengths = new int[m];

int[]

weakestIndices = new int[k];

for (int i = 0; i < m; i++)

{

int strength = 0;

for (int j = 0; j < n; j++)

{

if (mat[i][j] == 1)

{

strength += 1;

}

else

{

break;

}

}

strengths[i] = strength * m + i;

}

Array.Sort(strengths);

for (int i = 0; i < k; i++)

{

weakestIndices[i] = strengths[i] % m;

}

return weakestIndices;

}

}

Рисунок 7 – Успешность прохождения задания 6

Задание 7 – на тему: Number of Steps to Reduce a Number to Zero

Код, который прошел проверку:

public class Solution

{

public int NumberOfSteps(int num)

{

int steps = 0; while (num != 0)

{

if (num % 2 == 0)

{

num /= 2;

}

else

{

num -= 1;

}

steps++;

}

return steps;

}

}

Рисунок 8 – Успешность прохождения задания 7

Задание 8 – на тему: Two Sum

Код, который прошел проверку:

public class Solution

{

public int[] TwoSum(int[] nums, int target)

{

Dictionary<int, int> map = new Dictionary<int, int>(); for (int i = 0; i < nums.Length; i++)

{

int complement = target - nums[i]; if (map.ContainsKey(complement))

{

return new int[] { map[complement], i };

}

map[nums[i]] = i;

}

throw new ArgumentException("Нет решения с двумя суммами");

}

}

Рисунок 9 – Успешность прохождения задания 8

Задание 9 – на тему: Longest Substring Without Repeating Characters

Код, который прошел проверку:

public class Solution

{

public int LengthOfLongestSubstring(string s)

{

int n = s.Length;

HashSet<char> set = new HashSet<char>(); int ans = 0, i = 0, j = 0;

while (i < n && j < n)

{

if (!set.Contains(s[j]))

{

set.Add(s[j++]);

ans = Math.Max(ans, j - i);

}

else

{

set.Remove(s[i++]);

}

}

return ans;

}

}

Рисунок 10 – Успешность прохождения задания 9

Задание 10 – на тему: Valid Parentheses

Код, который прошел проверку:

public class Solution

{

public bool IsValid(string s)

{

var stack = new Stack<char>();

foreach (var c in s)

{

if (c == '(' || c == '[' || c == '{')

{

stack.Push(c);

}

else

{

if (stack.Count == 0)

{

return false;

}

else if (c == ')' && stack.Peek() == '(')

{

stack.Pop();

}

else if (c == ']' && stack.Peek() == '[')

{

stack.Pop();

}

else if (c == '}' && stack.Peek() == '{')

{

stack.Pop();

}

else

{

return false;

}

}

}

return stack.Count == 0;

}

}

Рисунок 11 – Успешность прохождения задания 10

Соседние файлы в предмете Основы программирования