You've successfully subscribed to Nicholas Workshop
Great! Next, complete checkout for full access to Nicholas Workshop
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
Success! Your billing info is updated.
Billing info update failed.

Longest Consecutive Digits

Nicholas Wong
Nicholas Wong

Question

Given a function prototype:

int continumax(char *output_string,char *input_string). 

Implement it to find the longest consecutive digits. This function must return the length of the longest digits. The found longest digits should be written to the memory location that output_string is pointing. For example, if input_string is abcd12345ed125ss123456789, function returns 9 and output_string becomes 123456789.

Solution

This question must be implemented in C/C++. Just skip letters, count the length and save the head position to a temp pointer.

Sample

#include <iostream>

int continumax(char *output_string, char *input_string) {
  int max_length = 0;
  char * max_string = new char[sizeof(input_string)];
  while (true) { 
    // skip all non-digit characters 
    while (*input_string != 0 && (*input_string < '0' || *input_string > '9')) {
      input_string++;
    }
    if (*input_string == 0) break; 
    // current char is digit 
    int length = 0;
    char *temp_string = input_string;
    while (*input_string != 0 && *input_string >= '0' && *input_string <= '9') {
      length++;
      input_string++;
    } 
    // check if this is longer 
    if (length > max_length) {
      max_length = length;
      max_string = temp_string;
    }
  } 
  // write maximum string to output and add null to end. 
  int i;
  for (i = 0; i < max_length; i++) output_string[i] = max_string[i];
  output_string[i] = 0;
  return max_length;
}

int main() {
  char input[] = "abcd12345ed125ss123456789";
  char * output = new char[sizeof(input)];
  int length = continumax(output, input);
  printf("Length: %dn", length);
  printf("Output: %sn", output);
}
Algorithm

Nicholas Wong

Fullstack software engineer with strong background in computer science and extensive experience in software engineering and architecture. Studied in NYU, worked in Yahoo, Rakuten and Manulife.