Files
JavaScript/String/LengthofLongestSubstringWithoutRepetition.js
P ABHIJIT 36dcff8c5d feat: New String Algorithm for LengthofLongestSubstringWithoutRepeati… (#1389)
* feat: New String Algorithm for LengthofLongestSubstringWithoutRepeatingCharacters

* Fixed Errors and Mistakes in New Algorithm LengthofLongestSubstringWithoutRepetition

* fix:#1389 Errors Fixed

* fix:#1389 Syntax and Code Errors Fixed

* fix:#1389 Errors FIxed

* Fixed All new errors

* fix:1389 Implemented suggestions and corrections

* Use @see annotation

---------

Co-authored-by: Lars Müller <34514239+appgurueu@users.noreply.github.com>
2023-10-02 22:18:20 +05:30

28 lines
935 B
JavaScript

/*
* @description : Given a string, the function finds the length of the longest substring without any repeating characters
* @param {String} str - The input string
* @returns {Number} The Length of the longest substring in a given string without repeating characters
* @example lengthOfLongestSubstring("abcabcbb") => 3
* @example lengthOfLongestSubstring("bbbbb") => 1
* @see https://leetcode.com/problems/longest-substring-without-repeating-characters/
*/
const lengthOfLongestSubstring = (s) => {
if (typeof s !== 'string') {
throw new TypeError('Invalid Input Type')
}
let maxLength = 0
let start = 0
const charMap = new Map()
for (let end = 0; end < s.length; end++) {
if (charMap.has(s[end])) {
start = Math.max(start, charMap.get(s[end]) + 1)
}
charMap.set(s[end], end)
maxLength = Math.max(maxLength, end - start + 1)
}
return maxLength
}
export { lengthOfLongestSubstring }