如题,输入一行整数数组,以逗号隔开,请你将数组中的每个元素替换为它们升序排列后的序号。
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
std::vector<int> nums;
char ch;
int x;
while (std::cin >> x)
{
nums.push_back(x);
std::cin >> ch;
}
auto sorted_nums = nums;
std::sort(sorted_nums.begin(), sorted_nums.end());
for (std::size_t i = 0; i < nums.size(); i++)
{
auto x = nums[i];
auto itr = std::find(sorted_nums.begin(), sorted_nums.end(), x);
auto pos = std::distance(sorted_nums.begin(), itr) + 1;
std::cout << pos;
if (i < nums.size() - 1)
std::cout << ",";
}
return 0;
}
arr = input("输入多个数字逗号隔开:").replace(" ", "").split(',')
dic = {}
for idx, val in enuhttps://img-mid.csdnimg.cn/release/static/image/mid/ask/690002279466116.png "#left")
merate(sorted(arr)):
if not dic.get(val):
dic[val] = idx + 1
res = [dic[i] for i in arr]
print(res)