반응형
https://leetcode.com/problems/longest-nice-substring/
전수조사 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
정답변수 substring을 선언해줍니다.
📔 풀이과정
1. i에서 j길이의 부분 문자열을 구하기 위해 2차원 for문을 구현해줍니다.
2. 구한 부분 문자열에서 유효한 문자열인지 검사하기 위한 1차원 for문이 필요하므로 총 3차원 for loop를 수행합니다.
3. 3차원 for loop서 구한 부분 문자열이 유효한지는 확인하는 문자의 toupper와 tolower가 각각 존재하면 됩니다.
4. 유효한 부분 문자열 이라면 size가 더 큰 값을 substring에 저장합니다.
📔 정답 출력 | 반환
substring을 반환합니다.
📕 Code
📔 C++
class Solution {
public:
string longestNiceSubstring(string s) {
string substring;
for(int i = 0; i < s.size(); i++) {
for(int j = 1; j <= s.size(); j++) {
string sb = s.substr(i,j);
bool isValid = true;
for(int k = 0; k < sb.size(); k++) {
char lower = tolower(sb[k]);
char upper = toupper(sb[k]);
if (sb.find(lower) == string::npos || sb.find(upper) == string::npos) {
isValid = false;
break;
}
}
if(isValid) {
if (substring.size() < sb.size()) {
substring = sb;
}
}
}
}
return substring;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.