atoi()
и s[i] - '0'
одинаковы?
int countSubstrings(string s, int n)
{
int count = 0, sum = 0;
unordered_map<int, int> mp;
mp[0]++;
for (int i = 0; i < n; ++i) {
sum += (s[i] - '0');
cout << sum << endl;
count += mp[sum - (i + 1)];
++mp[sum - (i + 1)];
}
return count;
Можем ли мы в приведенном выше коде использовать функцию atoi()
вместо s[i] - '0'
?
atoi()
предназначен для преобразования многосимвольной строки в число,s[i] - '0'
— только для одной цифры. - person Barmar   schedule 18.08.2020s[i]-0
наatoi
? Весь цикл делает больше, чем просто преобразование строки в целое число. - person cigien   schedule 18.08.2020c_str()
). - person Sir Jo Black   schedule 18.08.2020