Find longest length number in a string - GeeksforGeeks

12 May, 2021
Given a string of digits and characters. Write a program to find the number with the maximum number of digits in a string. Note: The number may not be the greatest number in the string. For example, if the string is “a123bc321” then the answer can be 123 or 321 as the problem is to find the number with the longest length and not the largest value.Examples:  
Input: geeks100for1234geeks
Output: 1234

Input: abx12321bst1234yz
Output: 12321
 
Approach: The idea is to traverse the string and if a digit is encountered, store its position and from that position traverse further until a character occurs. Every time a continuous series of a digit is encountered, store its length and match it with the length previously find series of a digit to find out the maximum of all the continuous series of digits.Below is the implementation of above approach.  
C++
Java
C#
Python 3
PHP
Javascript
// C++ code for finding the longest// length integer#include <iostream>using namespace std; string longestInteger(string str, int l){    int count = 0, max = 0, pos = -1, pre_pos, pre_len, len = 0;    // Traverse the string    for (int i = 0; i < l; i++) {        // Store the previous position and previous length        // of the digits encountered.        pre_pos = pos;        pre_len = len;        count = 0;        len = 0;         // If first digit occurs, store its position in pos        if (isdigit(str[i]))            pos = i;         // Traverse the string till a character occurs.        while (isdigit(str[i])) {            count++;            i++;            len++;        }         // Check if the length of the string is        // greater than the previous ones or not.        if (count > max) {            max = count;        }        else {            pos = pre_pos;            len = pre_len;        }    }    return (str.substr(pos, len));} // Driver codeint main(){    string str = "geeks100for1234geeks";    int l = str.length();    cout << longestInteger(str, l);    return 0;}
// Java code for finding the// longest length integerimport java.io.*;import java.util.*;import java.lang.*; class GFG{static String longestInteger(String str, int l){    int count = 0, max = 0,        pos = -1, pre_pos,        pre_len, len = 0;         // Traverse the string    for (int i = 0; i < l; i++)    {        // Store the previous position        // and previous length of the        // digits encountered.        pre_pos = pos;        pre_len = len;        count = 0;        len = 0;         // If first digit occurs,        // store its position in pos        if (Character.isDigit(str.charAt(i)))            pos = i;         // Traverse the string        // till a character occurs.        while (Character.isDigit(str.charAt(i)))        {            count++;            i++;            len++;        }         // Check if the length of        // the string is greater        // than the previous ones        // or not.        if (count > max)        {            max = count;        }        else        {            pos = pre_pos;            len = pre_len;        }    }    return (str.substring(pos, pos + len));} // Driver codepublic static void main(String[] args){    String str = "geeks100for1234geeks";    int l = str.length();    System.out.print(longestInteger(str, l));}}
// C# code for finding the// longest length integerusing System; class GFG{static string longestInteger(string str,                             int l){    int count = 0, max = 0,        pos = -1, pre_pos,        pre_len, len = 0;         // Traverse the string    for (int i = 0; i < l; i++)    {        // Store the previous position        // and previous length of the        // digits encountered.        pre_pos = pos;        pre_len = len;        count = 0;        len = 0;         // If first digit occurs,        // store its position in pos        if (Char.IsDigit(str[i]))            pos = i;         // Traverse the string        // till a character occurs.        while (Char.IsDigit(str[i]))        {            count++;            i++;            len++;        }         // Check if the length of        // the string is greater        // than the previous ones        // or not.        if (count > max)        {            max = count;        }        else        {            pos = pre_pos;            len = pre_len;        }    }    return (str.Substring(pos, len));} // Driver codepublic static void Main(){    string str = "geeks100for1234geeks";    int l = str.Length;    Console.Write(longestInteger(str, l));}} // This code is contributed// by ChitraNayal
# Python 3 code for finding the# longest length integer def longestInteger(s, length):    count = 0    maximum = 0    pos = -1    l = 0         # Traverse the string    for i in range(length):                 # Store the previous position        # and previous length of        # the digits encountered.        pre_pos = pos        pre_len = l        count = 0        l = 0         # If first digit occurs,        # store its position in pos        if (s[i].isdecimal()):            pos = i         # Traverse the string        # till a character occurs.        while (s[i].isdecimal()):            count += 1            i += 1            l += 1         # Check if the length of        # the string is greater        # than the previous ones        # or not.        if (count > maximum):            maximum = count                 else:            pos = pre_pos            l = pre_len     return (s[pos: pos + l]) # Driver codes = "geeks100for1234geeks"length = len(s)print(longestInteger(s, length)) # This code is contributed# by ChitraNayal
<?php// PHP code for finding the// longest length integer function longestInteger($str, $l){    $count = 0;    $max = 0;    $pos = -1;    $pre_pos = 0;    $pre_len = 0;    $len = 0;         // Traverse the string    for ($i = 0; $i < $l; $i++)    {        // Store the previous position        // and previous length of        // the digits encountered.        $pre_pos = $pos;        $pre_len = $len;        $count = 0;        $len = 0;         // If first digit occurs,        // store its position in pos        if (is_numeric($str[$i]))            $pos = $i;         // Traverse the string till        // a character occurs.        while (is_numeric($str[$i]))        {            $count++;            $i++;            $len++;        }         // Check if the length of        // the string is greater        // than the previous ones        // or not.        if ($count > $max)        {            $max = $count;        }        else        {            $pos = $pre_pos;            $len = $pre_len;        }    }    return (substr($str, $pos, $len));} // Driver code$str = "geeks100for1234geeks";$l = strlen($str);echo longestInteger($str, $l); // This code is contributed// by ChitraNayal?>
<script>// Javascript code for finding the// longest length integer         function longestInteger(str,l)    {        let count = 0, max = 0,        pos = -1, pre_pos,        pre_len, len = 0;           // Traverse the string    for (let i = 0; i < l; i++)    {        // Store the previous position        // and previous length of the        // digits encountered.        pre_pos = pos;        pre_len = len;        count = 0;        len = 0;           // If first digit occurs,        // store its position in pos        if (!isNaN(String(str[i]) * 1))            pos = i;           // Traverse the string        // till a character occurs.        while (!isNaN(String(str[i]) * 1))        {            count++;            i++;            len++;        }           // Check if the length of        // the string is greater        // than the previous ones        // or not.        if (count > max)        {            max = count;        }        else        {            pos = pre_pos;            len = pre_len;        }    }    return (str.substring(pos, pos + len));    }         // Driver code    let str = "geeks100for1234geeks";    let l = str.length;    document.write(longestInteger(str, l));      // This code is contributed by rag2127</script>
1234
 
Time Complexity: O(n) Auxiliary Space Complexity: O(1) 
ukasp
ManasChhabra2
rag2127
C-String-Question
school-programming
C++ Programs
School Programming
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Passing a function as a parameter in C++
Program to implement Singly Linked List in C++ using class
Const keyword in C++
cout in C++
Dynamic _Cast in C++
Python Dictionary
Arrays in C/C++
Inheritance in C++
Reverse a string in Java
C++ Classes and Objects