[LeetCode] 문자열에서 IP 주소를 복원하는 string의 IP 복원
1951 단어 LeetCode
"25525511135"
, return ["255.255.11.135", "255.255.111.35"]
. (Order does not matter) 사고방식: 돌아가는 방법으로.IP 주소는 점분 10진법으로 모두 4개의part가 있는데 각각part는 0보다 크고 255보다 작다.귀속할 때 partnumber를 전달하고 partnumber가 4일 때 IP 주소 복구가 완료됨을 설명합니다.또한 각 파트의 범위는 [0, 255] 안에 있어야 하며, 0으로 시작하는 파트가 나타나지 않도록 주의해야 한다. 예를 들어010은 재미없어요.
010
.1”.
코드는 다음과 같습니다.
vector<string> restoreIpAddresses(string s) {
// main function
vector<string> col;
string ip;
partitionIP(s, 0, 0, ip, col);
return col;
}
void partitionIP(string s, int startIndex, int partNum,
string resultIp, vector<string>& col)
{// utility function
//max 3 bits per partition
if(s.size() - startIndex > (4-partNum)*3) return;
//min 1 bit per partition
if(s.size() - startIndex < (4-partNum)) return;
if(startIndex == s.size() && partNum ==4)
{
resultIp.resize(resultIp.size()-1);
col.push_back(resultIp);
return;
}
int num =0;
for(int i = startIndex; i< startIndex +3; i++)
{
num = num*10 + (s[i]-'0');
if(num<=255)
{
resultIp+=s[i];
partitionIP(s, i+1, partNum+1, resultIp+'.', col);
}
if(num ==0)//0.0.0.0 valid, but need to avoid 0.1.010.01
{
break;
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
python 문자열 입력으로 모든 유효한 IP 주소 생성(LeetCode 93번 문제)이 문제의 공식 난이도는 Medium으로 좋아요 1296, 반대 505, 통과율 35.4%를 눌렀다.각 항목의 지표로 말하자면 보기에는 약간 규범에 맞는 것 같지만, 실제로도 확실히 그렇다.이 문제의 해법과 의도는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.