day1 : still trying one final rizz before sleep

This commit is contained in:
rizzOn 2026-06-04 02:21:49 +05:30
parent 745bfcac95
commit f902323ae9
2 changed files with 53 additions and 0 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -0,0 +1,53 @@
package gopherriz
import "strings"
// Given a string s, find the length of the longest substring
// without duplicate characters.
// Our solution
func lengthOfLongestSubstring(s string) int {
max := 0
unique := ""
var currentLetter = ""
for _, letter := range s {
currentLetter = string(letter)
if !strings.Contains(unique, currentLetter) {
unique = unique + currentLetter
subSLen := len(unique)
if max < subSLen {
max = subSLen
}
} else {
unique = unique[strings.Index(unique, currentLetter)+1:] + currentLetter
}
}
return max
}
// another way, more efficient way to handle the same problem.
// using constant space, with same time complexity, but much less actual code complexity
func lengthOfLongestSubstringOne(s string) int {
Map := make(map[byte]bool)
Left, Max := 0, 0
for Right := 0; Right < len(s); Right++ {
for Map[s[Right]] {
delete(Map, s[Left])
Left++
}
Map[s[Right]] = true
temp := Right - Left + 1
if temp > Max {
Max = temp
}
}
return Max
}