当前位置:   article > 正文

面试题:把字符串转化成整数_面试把字符串装换成整数数值

面试把字符串装换成整数数值

题意:

将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。

代码:

我的

  1. class Solution {
  2. public:
  3. bool isValue(string str)
  4. {
  5. if (str[0] == '+')
  6. {
  7. for (int i = 1; i<str.size(); i++)
  8. {
  9. if (str[i]<'0' || str[i]>'9')
  10. return false;
  11. }
  12. return true;
  13. }
  14. else if (str[0] == '-')
  15. {
  16. for (int i = 1; i<str.size(); i++)
  17. {
  18. if (str[i]<'0' || str[i]>'9')
  19. return false;
  20. }
  21. return true;
  22. }
  23. for (int i = 0; i<str.size(); i++)
  24. {
  25. if (str[i]<'0' || str[i]>'9')
  26. return false;
  27. }
  28. return true;
  29. }
  30. int StrToInt(string str) {
  31. if (isValue(str))
  32. {
  33. int num = 0;
  34. int flag = 1;
  35. for (int i = 0; i<str.size(); i++)
  36. {
  37. if (str[i] == '+')
  38. flag = 1;
  39. else if (str[i] == '-')
  40. flag = -1;
  41. else
  42. num = num * 10 + str[i] - '0';
  43. }
  44. return num*flag;
  45. }
  46. return 0;
  47. }
  48. };

别人的:

  1. class Solution
  2. {
  3. public:
  4. int StrToInt(string str) {
  5. int flag = 1;
  6. int num = 0;
  7. if (str.size() == 0) return 0;
  8. if (str[0] == '-') flag = -1;
  9. for (int i = (str[0] == '+' || str[0] == '-') ? 1 : 0; i < str.size(); i++)
  10. {
  11. if (!(str[i] >= '0' && str[i] <= '9')) return 0;
  12. num = num * 10 + str[i] - '0';
  13. }
  14. return num*flag;
  15. }
  16. };

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/208021
推荐阅读
相关标签
  

闽ICP备14008679号