공부
[LeetCode] 3. Longest Substring Without Repeating Characters (Java)
수다쟁이직딩이
2020. 8. 3. 14:08
[문제 설명]
- 주어진 문자열에서 중복되는 문자 없이 연속으로 가장 긴 단어를 나열했을 때의 길이를 구하시오 .
[내 풀이법]
- 문자를 아스키코드로 변환하여 계산. A -> 65 / Z -> 90, a -> 97, z -> 122 임을 고려하여 배열의 길이를 조정(필자는 여기서 1000으로 사용).
- 첫번째 단어부터 그 다음수에 중복되는 수가 있는지 없는지 int 문자열에 카운팅을하여 체크.
- 중복되는 단어가 있을 경우 break를 걸어 문자열 길이를 체크.
- 제일 긴 문자열을 return.
class Solution {
public int lengthOfLongestSubstring(String s) {
String t = s;
int totalCt = 0;
for(int i=0; i<t.length(); i++){
int[] arr = new int[1000];
int count = 0;
// System.out.println("1");
for(int j=i; j<t.length();j++){
int temp = (int)(t.charAt(j));
if(arr[temp] != 0){
break;
}
else{
count++;
arr[temp]++;
}
}
if(totalCt < count){
totalCt = count;
}
}
return totalCt;
}
}