나는 this problem에서 일하고 있습니다. 내 솔루션은 3 초 제한 시간 내에 잘 작동하지만 모든 경우에 사용할 수있는 것처럼 보입니다.하지만 온라인으로 제출하면 여전히 3을 초과합니다. 초. 내가 거기에 무한정 계속이 while 루프를 일으키는 경우가 생각합니다 ...숨겨진 무한 루프 찾기
while (!equals(availableChars, testChars)){
next = getNextAlphaString(high, next, availableChars, it);
fillCharSet(next, testChars);
}
을하지만 난 내 기능에게 무리를 테스트 한 나는 그것이 무엇인지 알아낼 수있는 것은 너희들을 수있는 희망 뭔가 좀 봐. 여기에서 헬퍼 기능은 다음
bool equals(multiset<char>& availableChars, multiset<char>& test){
multiset<char>::iterator it;
for (it = availableChars.begin(); it != availableChars.end(); it++){
if ((int)availableChars.count(*it) != (int)test.count(*it)) return false;
}
return true;
}
은 * * 여기
void fillCharSet(string in, multiset<char>& chars){
chars.clear();
for (int i=0; i<in.size(); i++){chars.insert(in[i]);}
}
'std :: next_permutation'을 사용할 수 없다고 추측하겠습니다. – chris
실제 컴파일러/디버거 쌍을 가져 와서 직접 찾으시겠습니까? –
@chris : 당신이 똑같은 크리스이 아니란 걸 깨닫기 위해 잠시 나 걸렸습니다. –