이 문자열 압축 문제를 해결 할 수 없습니다 :나는 내가 이런 식으로 문자열을 압축해야하는 상황이
"AAABBBCCCDDD" => "A3B3C3D3", or
"ABBCCCDDDDEEEEE" => "A1B2C3D4E5", or
"FOOFOO" => "F1O2F1O2", this one is the one I can't solve
내가 자바 스크립트와 함께이 일을하고 지금까지 나는이 함께했다 한을 :
를function in_array(key, array) {
for(var x in array) {
if(array[x] == key) {
return true;
}
}
return false;
}
function compress(str) {
var str_splitted = str.split('');
var new_strings = [];
for(var x in str_splitted) {
if(!in_array(str_splitted[x], new_strings)) {
new_strings.push(str_splitted[x]);
new_strings.push((str.split(str_splitted[x]).length - 1));
}
}
return new_strings.join('');
}
그래서, 코드 내 조각으로 두 가지 예는 완벽하게 작동하지만 세번째는 일치하는 모든 문자를 계산 nontheless 것이다 출력 그래서 :
"FOOFOO" => "F2O3", and not "F1O2F1O2"
이 문제에 대한 도움, 조언, 조언 및/또는 더 나은 해결책이 정말로 필요합니다. 그리고 저에게 많은 도움을 주신 모든 분들께 감사드립니다!
당신은 그들이 행에있는 검사, 각 문자의 총 발생을 계산하지 않고 있습니다. – Barmar
@Barmar - 예 내 친구, 나는 그것을 알고 있습니다 ... 나는 그것을 성취하기위한 논리를 찾을 수 없습니다. 나 좀 도와 줄 수있어? –