Болтушкин Л.С., 712-2, LeetCode
.pdfБолтушкин Л.С., 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