From 555303750f3fd5077783a1042ba5cbff03a0f685 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Velimir=20=C4=90urkovi=C4=87?= Date: Fri, 7 Feb 2025 16:31:11 +0100 Subject: [PATCH] feat: add solution to lc problem: No.0005 --- .../README.md | 33 +++++++++++++++++++ .../README_EN.md | 33 +++++++++++++++++++ .../Solution2.cs | 28 ++++++++++++++++ 3 files changed, 94 insertions(+) create mode 100644 solution/0000-0099/0005.Longest Palindromic Substring/Solution2.cs diff --git a/solution/0000-0099/0005.Longest Palindromic Substring/README.md b/solution/0000-0099/0005.Longest Palindromic Substring/README.md index 407fd7e12412c..11a6b7df01a67 100644 --- a/solution/0000-0099/0005.Longest Palindromic Substring/README.md +++ b/solution/0000-0099/0005.Longest Palindromic Substring/README.md @@ -456,6 +456,39 @@ impl Solution { } ``` +#### C# + +```cs +public class Solution { + private string s; + private int n; + + public String LongestPalindrome(string s) { + this.s = s; + n = s.Length; + int start = 0, mx = 1; + for (int i = 0; i < n; ++i) { + int a = F(i, i); + int b = F(i, i + 1); + int t = Math.Max(a, b); + if (mx < t) { + mx = t; + start = i - ((t - 1) >> 1); + } + } + return s.Substring(start, start + mx); + } + + private int F(int l, int r) { + while (l >= 0 && r < n && s[l] == s[r]) { + --l; + ++r; + } + return r - l - 1; + } +} +``` + #### PHP ```php diff --git a/solution/0000-0099/0005.Longest Palindromic Substring/README_EN.md b/solution/0000-0099/0005.Longest Palindromic Substring/README_EN.md index 895bbb34ed3ff..4ac2610fb4e8e 100644 --- a/solution/0000-0099/0005.Longest Palindromic Substring/README_EN.md +++ b/solution/0000-0099/0005.Longest Palindromic Substring/README_EN.md @@ -454,6 +454,39 @@ impl Solution { } ``` +#### C# + +```cs +public class Solution { + private string s; + private int n; + + public String LongestPalindrome(string s) { + this.s = s; + n = s.Length; + int start = 0, mx = 1; + for (int i = 0; i < n; ++i) { + int a = F(i, i); + int b = F(i, i + 1); + int t = Math.Max(a, b); + if (mx < t) { + mx = t; + start = i - ((t - 1) >> 1); + } + } + return s.Substring(start, start + mx); + } + + private int F(int l, int r) { + while (l >= 0 && r < n && s[l] == s[r]) { + --l; + ++r; + } + return r - l - 1; + } +} +``` + #### PHP ```php diff --git a/solution/0000-0099/0005.Longest Palindromic Substring/Solution2.cs b/solution/0000-0099/0005.Longest Palindromic Substring/Solution2.cs new file mode 100644 index 0000000000000..48e1cf8b8e46c --- /dev/null +++ b/solution/0000-0099/0005.Longest Palindromic Substring/Solution2.cs @@ -0,0 +1,28 @@ +public class Solution { + private string s; + private int n; + + public String LongestPalindrome(string s) { + this.s = s; + n = s.Length; + int start = 0, mx = 1; + for (int i = 0; i < n; ++i) { + int a = F(i, i); + int b = F(i, i + 1); + int t = Math.Max(a, b); + if (mx < t) { + mx = t; + start = i - ((t - 1) >> 1); + } + } + return s.Substring(start, start + mx); + } + + private int F(int l, int r) { + while (l >= 0 && r < n && s[l] == s[r]) { + --l; + ++r; + } + return r - l - 1; + } +} \ No newline at end of file