3. Longest Substring Without Repeating Characters

package LeetCode_3

import java.lang.StringBuilder

/**
 * 3. Longest Substring Without Repeating Characters
 * https://leetcode.com/problems/longest-substring-without-repeating-characters/description/
 *
 * Given a string, find the length of the longest substring without repeating characters.

Example 1:
Input: "abcabcbb"
Output: 3
Explanation: The answer is "abc", with the length of 3.

Example 2:
Input: "bbbbb"
Output: 1
Explanation: The answer is "b", with the length of 1.

Example 3:
Input: "pwwkew"
Output: 3
Explanation: The answer is "wke", with the length of 3.
Note that the answer must be a substring, "pwke" is a subsequence and not a substring.
 * */
class Solution {
    fun lengthOfLongestSubstring(s: String): Int {
        var result = 0
        val length = s.length
        for (i in 0 until length) {
            val sb = StringBuilder()
            var subI = i
            while (subI < length) {
                if (sb.toString().indexOf(s[subI]) == -1) {
                    //if not found the char in substring, add it up
                    sb.append(s[subI])
                } else {
                    break
                }
                subI++
            }
            result = Math.max(result, sb.toString().length)
        }
        return result
    }
}

 

posted @ 2019-09-19 01:41  johnny_zhao  阅读(98)  评论(0编辑  收藏  举报