Преобразовать код Python в C++?
Я пытался изменить этот код на C++. Версия python работает, но C++ - нет.
Вопрос:
Given a sequence consisting of 'I' and 'D' where 'I' denotes increasing sequence and 'D' denotes the descreasing sequence. Write a program that decodes the given sequence to construct minimum number without repeated digits. Sample Input 1: IDIDII Sample Output 1: 1325467 Sample Input 2: DDDD Sample Output 2: 54321
Это мой код на Python:
s = input() ans = [1] count = 0 for i in s: if i == 'I': count = 0 k = len(ans) ans.append(k + 1) else: count += 1 tmp = ans[-1] for i in range(-1, -1 - count, -1): ans[i] += 1 ans.append(tmp) for i in ans: print(i, end = "")
Что я уже пробовал:
Это то, что я написал, но это не дает правильного вывода.
#include <bits/stdc++.h> using namespace std; vector<int> digits(string s){ vector<int> ans = {1}; int count = 0; for (char const &c : s){ if (c == 'I'){ count = 0; int k = ans.size(); ans.push_back(k + 1); } else{ count ++; int tmp = ans.back(); for (int i = ans.size() - 1; i > ans.size() - 1 - count; i--){ ans[i] += 1; } ans.push_back(tmp); } } return ans; } int main(){ string s; cin >> s; vector<int> ans = digits(s); for (int i = 0; i < ans.size(); i++){ cout << ans[i]; } return 0; }
Richard MacCutchan
- но он не работает должным образом."
И что это значит?
[no name]
Это не дает ожидаемого результата
Richard MacCutchan
И мы должны догадаться, что это такое?