私がしなければならない CS プロジェクトの RLE 圧縮および解凍メソッドを作成したいと考えています。問題はロジックではなく、C++ のノウハウです。私が現在学校で学んでいるのは Python だけなので、このプロジェクトを Python でやってみましたが、とても簡単でした...
私は C++ をよく読めるようになる予定ですが、今夜は十分な時間がありません。同等の C++ コードを理解できれば、その言語をより快適に使用できるようになるので、助けを求めたいと思っています。
次の python コードを C++ の同等のコードに変換するのを手伝ってくれる人はいますか?
# compresses data using RLE compression
def compress(data):
letter_counter = 1
new_data = []
for i in range(len(data)):
try:
# if the element is the same as the next one
if data[i] == data[i + 1]:
letter_counter += 1
# if different element than previous index
else:
new_data.append(str(letter_counter) + data[i])
letter_counter = 1 # reset the letter count
except IndexError: # when the index is out of range (no more elements)
new_data.append(str(letter_counter) + data[i])
return new_data
data = ['w', 'w', 'w', 'w', 'w', 'b', 'b', 'b', 'c', 'd', 'e', 'e']
data2 = ['w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w', 'w']
return compress(data) # prints ['5w', '3b', '1c', '1d', '2e']
return compress(data2) # prints ['14w']