# Sum of numbers formed by consecutive digits present in a given string

• Last Updated : 06 Sep, 2021

Given a string S consisting of digits [0 – 9] and lowercase alphabets, the task is to calculate the sum of all numbers represented by continuous sequences of digits present in the string S.

Examples:

Input: S = “11aa32bbb5”
Output: 48
Explanation:
The consecutive sequence of numbers present in the string S are {11, 32, 5}.
Therefore, sum = 11 + 32 + 5 = 48

Input: s = “5an63ff2”
Output: 70

Approach: Follow the steps below to solve the problem:

• Initialize a variable, say curr, to store the current sequence of consecutive digits
• Iterate over the characters of the string.
• If the current character is not a digit, add the current value of curr to the final answer. Reset curr to 0.
• Otherwise, append the current digit to curr.
• Finally, return the final answer.

Below is the implementation of the above approach:

## C++

 // C++ Program to implement// the above approach#include using namespace std; // Function to calculate the sum of// numbers formed by consecutive// sequences of digits present in the stringint sumOfDigits(string s){    // Stores consecutive digits    // present in the string    int curr = 0;     // Stores the sum    int ret = 0;     // Iterate over characters    // of the input string    for (auto& ch : s) {         // If current character is a digit        if (isdigit(ch)) {             // Append current digit to curr            curr = curr * 10 + ch - '0';        }        else {             // Add curr to sum            ret += curr;             // Reset curr            curr = 0;        }    }     ret += curr;    return ret;} // Driver Codeint main(){    string S = "11aa32bbb5";    cout << sumOfDigits(S);    return 0;}

## Java

 // Java program to implement// the above approachimport java.io.*;import java.util.*;class GFG{   // Function to calculate the sum of  // numbers formed by consecutive  // sequences of digits present in the string  static int sumOfDigits(String s)  {     // Stores consecutive digits    // present in the string    int curr = 0;     // Stores the sum    int ret = 0;     // Iterate over characters    // of the input string    for(char ch : s.toCharArray())    {       // If current character is a digit      if (ch >= 48 && ch <= 57)      {         // Append current digit to curr        curr = curr * 10 + ch - '0';      }      else      {         // Add curr to sum        ret += curr;         // Reset curr        curr = 0;      }    }    ret += curr;    return ret;  }   // Driver Code  public static void main(String[] args)  {    String S = "11aa32bbb5";    System.out.print(sumOfDigits(S));  }} // This code is contributed by splevel62.

## Python3

 # Python3 program for the above approach # Function to calculate the sum of# numbers formed by consecutive# sequences of digits present in the stringdef sumOfDigits(s) :         # Stores consecutive digits    # present in the string    curr = 0     # Stores the sum    ret = 0     # Iterate over characters    # of the input string    for ch in s :         # If current character is a digit        if (ord(ch) >= 48 and ord(ch) <= 57) :             # Append current digit to curr            curr = curr * 10 + ord(ch) - ord('0')                 else :             # Add curr to sum            ret += curr             # Reset curr            curr = 0     ret += curr    return ret # Driver Code S = "11aa32bbb5"print(sumOfDigits(S)) # This code is contributed by code_hunt.

## C#

 // C# Program to implement// the above approachusing System;class GFG{         // Function to calculate the sum of    // numbers formed by consecutive    // sequences of digits present in the string    static int sumOfDigits(string s)    {               // Stores consecutive digits        // present in the string        int curr = 0;               // Stores the sum        int ret = 0;               // Iterate over characters        // of the input string        foreach(char ch in s)        {                   // If current character is a digit            if (ch >= 48 && ch <= 57)            {                       // Append current digit to curr                curr = curr * 10 + ch - '0';            }            else            {                       // Add curr to sum                ret += curr;                       // Reset curr                curr = 0;            }        }        ret += curr;        return ret;    }   // Driver code  static void Main() {    string S = "11aa32bbb5";    Console.WriteLine(sumOfDigits(S));  }} // This code is contributed by divyeshrabadiya07.

## Javascript



Output:
48

Time Complexity: O(N)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up