1、题目描述
2、算法分析
最直观的思路是把数字字符串全都提取出来,然后取出最大的字符串,但这样有些麻烦,引入更大的空间复杂度;
另一个思想,我们想到了函数string.substring(a,b),通过下标a,b把子字符串提取出来,那么本题要求最大的数字子字符串,我们可以维护一个数字字符串的最大长度和该子字符串结束的下标,然后通过substring()函数返回该字符串中的最大数字子字符串。
3、代码(ACM模式---自己构建输入输出)
import java.io.*;
import java.util.*;
class test
{
public static void main (String[] args) throws java.lang.Exception
{
//处理IO
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();//输入原始字符串
//算法部分
int max =0;//维护一个最大数字字符串长度
int end =0;//维护该最大数字字符串的结尾下标
int count=0;//记录遍历过程中 当前数字字符串的长度
for(int i=0;i<s.length();i++){
if('0'<= s.charAt(i)&&s.charAt(i)&l