Всем привет. Есть пример несложной задачи на JavaScript, акцент на строке:
const nextValue = string[i + 1]; // nextValue undefined
Переписав данный код на Python я столкнулся с:
print('nextValue', nextValue) # IndexError: string index out of range
Подскажите, как правильно обработать данное обращение к несуществующему элементу?
Пример: JavaScript
const solution = (string) => {
let accumulator = [];
let count = 1;
for (let i = 0; i < string.length; i++) {
const currentValue = string[i];
const nextValue = string[i + 1]; // nextValue undefined
console.group('Group');
console.log('currentValue', currentValue);
console.log('nextValue', nextValue);
console.groupEnd();
if (currentValue === nextValue) {
count += 1;
continue;
}
accumulator.push(currentValue);
if (count > 1) {
accumulator.push(count);
}
count = 1;
/*if (currentValue !== nextValue) {
accumulator.push(currentValue);
accumulator.push(count);
count = 1;
} else {
count += 1;
}*/
}
return accumulator.join('');
}
console.log(solution('WWAWWACBBBBII')); // => 'W2AW2ACB4I2'
// console.log(solution('ABBCCC')); // => 'AB2C3'
Пример: Python
def solution(string):
accumulator = []
count = 1
for idx, currentValue in enumerate(string):
# currentValue = string[i]
nextValue = string[idx + 1]
print('currentValue', currentValue)
print('nextValue', nextValue) # IndexError: string index out of range
print('=====')
if currentValue == nextValue:
count += 1
continue
accumulator.append(currentValue)
if count > 1:
accumulator.append(count)
count = 1
return accumulator
# print(solution('WWAWWACBBBBII')) # => 'W2AW2ACB4I2'
print(solution('ABBCCC')) # => 'AB2C3'