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; } }
13 Ocak 2022 Perşembe
Quest_28_Implement_strStr
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
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>();
}
}
}
6 Kasım 2020 Cuma
Design Patterns - 1 - Singleton (Türkçe ve İngilizce)
3 Kasım 2020 Salı
Data Annotations Örnek Kod Parçası
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace ConsoleAppErenOzten { public class Kisi { [Required(ErrorMessage = "{0} gereklidir.")] [StringLength(50, MinimumLength = 3, ErrorMessage = "Minimum 3, maksimum 50 karakter giriniz.")] [DataType(DataType.Text)] public string Ad { get; set; } [Required(ErrorMessage = "{0} gereklidir.")] [StringLength(50, MinimumLength = 3, ErrorMessage = "Minimum 3, maksimum 50 karakter giriniz.")] [DataType(DataType.Text)] public string Soyad { get; set; } [DataType(DataType.PhoneNumber)] [Phone] public string Telefon { get; set; } [DataType(DataType.EmailAddress)] [EmailAddress] public string Email { get; set; } } class Program { static void Main(string[] args) { var kisi = new Kisi(); kisi.Ad = "Eren"; // Boş bir string değeri atanıyor: kisi.Soyad = ""; kisi.Telefon = "3652978130"; kisi.Email = "eren@gmail.com"; ValidationContext context = new ValidationContext(kisi, null, null); var validationResults = new List<ValidationResult>(); // Aşağıdaki satırda, eğer hatalar oluşmuşsa, // bu hatalar validationResults listesine ekleniyor. // Üçüncü parametreyi inceleyiniz: bool valid = Validator.TryValidateObject(kisi, context, validationResults, true); if (!valid) { foreach (ValidationResult validationResult in validationResults) { Console.WriteLine("{0}", validationResult.ErrorMessage); } } Console.ReadKey(); } } }