cadena leetcode convierte una cadena en un número

Directorio de artículos

LA

problema

Inserte la descripción de la imagen aquí

solución

Código



/*
思路: 这道题使用遍历加多层条件控制去解决。 属于细节题。 

-  define  int nums 
- if first == '+' num = 1; else =='-' num = -1
-  for(....)  //  data from end to front
- -  if (data in 0-9) num = num*10+data;
- -  else return 0;
- return nums;
*/

class Solution {
    
    
public:
   int StrToInt(string str) {
    
    
       int num = 0;
       if(str[0]>'0'&&str[0]<'9'){
    
    
           for(int i =0 ; i<str.size();i++){
    
    
               if(str[i]>'0'&&str[i]<'9'){
    
    
                   int temp = str[i]- '0';
                   num = num*10+temp ;
               }
               else return 0;
           }            
       }
       else if(str[0] =='+'||str[0] =='-'){
    
    
           for(int i =1 ; i<str.size();i++){
    
    
               if(str[i]>'0'&&str[i]<'9'){
    
    
                   int temp = str[i]- '0';
                   num = num*10+temp ;
               }
               else return 0;
           }
           if(str[0] =='+')num *=  1;
           else if(str[0]=='-') num *= -1;            
       }
       else return 0;        
       return num;
       
   }
};

Resumen y reflexión

  1. Preste atención a cómo se deben resolver las diferentes situaciones. El tema no es difícil y hay más detalles.

Supongo que te gusta

Origin blog.csdn.net/liupeng19970119/article/details/114186919
Recomendado
Clasificación