0003-Longest Substring Without Repeating Characters

題目如下:

Given a string s, find the length of the longest substring without repeating characters.

只求 pass 的解答:

func lengthOfLongestSubstring(s string) int {
	m := make(map[rune]int)
	max := 0
	for i, r := range s {
		if d, has := m[r]; has {
			if max < len(m) {
				max = len(m)
			}

			for k, v := range m {
				if v < d {
					delete(m, k)
				}
			}
		}
		m[r] = i
	}

	if max < len(m) {
		max = len(m)
	}
	return max
}
public class Solution {
    public int LengthOfLongestSubstring(string s) {
        int ans = 0;
        string tmp = string.Empty;

        for(int i = 0; i < s.Length; i++)
        {
            int j = tmp.IndexOf(s[i]);
            if (j == -1) tmp += s[i].ToString();
            else {
                ans = Math.Max(ans, tmp.Length);
                tmp = (j == tmp.Length ? string.Empty : tmp.Substring(j+1)) + s[i].ToString();
            }
        }

        return Math.Max(ans, tmp.Length);
    }
}