题目
链接
思路
- 初始化cur表示当前连续数字串,res表示最长连续数字串
- cur.length()>res.length()则更新最长数字串
- 特殊处理尾部以数字结束,i已经越界所以单独处理
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String s=scanner.nextLine();
//当前数字串
String cur="";
//最长字符串
String res="";
int i=0;
for (;i<s.length();i++){
char c=s.charAt(i);
if (c>='0'&&c<='9'){
//cur=cur+c
cur=cur+c+"";
}else{
//更新大串
if (cur.length()>res.length()){
res=cur;
}
//还原初始化
cur="";
}
}
//123abc123456
if (i==s.length()&&cur.length()>res.length()){
res=cur;
}
System.out.println(res);
}
}
复杂度
时间复杂度O(n)
空间复杂度O(1):变量分配内存