我很困惑,当索引是字符时,怎么可能有一个整数数组? 另一个困惑是这一行
if(i + 1 < N && nums[s[i+1]] > nums[s[i]])
字符串是否转换为整数,然后映射到 nums 数组,类似于将其散列到索引?`
int romanToInt(string s) {
const int N = s.length();
int nums[128];
nums['I'] = 1;
nums['V'] = 5;
nums['X'] = 10;
nums['L'] = 50;
nums['C'] = 100;
nums['D'] = 500;
nums['M'] = 1000;
int result = 0;
for(int i = 0; i < N; ++i)
{
if(i + 1 < N && nums[s[i+1]] > nums[s[i]])
result -= nums[s[i]];
else
result += nums[s[i]];
}
return result;
}
最佳答案
当在算术表达式中使用小于 int
类型的值时(例如作为数组索引运算符的运算符),它是 promoted到int
。
但请注意,数组元素类型和索引类型并不真正相关。
关于c++ - int 数组但索引是字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59603221/