算法强化每日一题--字符串中找出连续最长的数字串

简介: 算法强化每日一题--字符串中找出连续最长的数字串

hi,大家好,今天为大家带来一道题目

OR59 字符串中找出连续最长的数字串

描述

读入一个字符串str,输出字符串str中的连续最长的数字串

输入描述:

个测试输入包含1个测试用例,一个字符串str,长度不超过255。

输出描述:

在一行内输出str中里连续最长的数字串。

示例1

输入:

abcd12345ed125ss123456789

复制输出:

123456789


来说一说这个题的思路

1.首先是读入一个字符串

2.定义两个字符串,存放值

3.比较

4.打印结果

现在重点解释第二个和第三个,我来画个图


f468191d7f904c74aa684831b2fe80cb.png

 

cur存放的是数字集合,ret存放的是结果,来说一下这个过程

当i下标从1开始走,遇到数字就放到cur字符串中,遇到字母就停止,进行cur和ret长度的比较

如果cur长度大于ret长度,那么就把cur赋给ret

就像下图中展示的那样

c138f01e7f42476baeabf81431d7f137.png


现在继续往下走,当i=4时,将4放到cur中,再往后走,又遇到字母,那么再次判断是否cur长度>ret长度,如果不满足,就让cur变为空字符串,如下图

然后i接着往后走,将56789全都放到cur中,当i==数组长度时,并且cur的长度大于ret的长度时,就更新ret的长度,最后打印

思路就是这样的,这个考虑i==str.length()容易被略过,在刷题的时候,要记得这个点!!!

现在写代码


import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
    //先读入一个字符串
        Scanner scanner=new Scanner(System.in);
        String cur="";
        String ret="";
        String str=scanner.nextLine();
        int i=0;
        for(i=0;i<str.length();i++){
            char ch=str.charAt(i);
            if(ch>='0'&&ch<='9'){
                cur=cur+ch+"";//因为ch是字符,加一个引号就变成字符串了
            }else{
                if(cur.length()>ret.length()){
                    ret=cur;
                }else{
                    cur="";
                }
            }
        }
        if(i==str.length()&&cur.length()>ret.length()){
            ret=cur;
        }
        System.out.println(ret);
    }
}

7aacb506e39042b6856b91baa95900f2.gif

这就是今天的题目了,再接再厉!!!一起加油啊💖💖💖

相关文章
|
2月前
|
算法
【算法】滑动窗口——找到字符串中所有字母异位词
【算法】滑动窗口——找到字符串中所有字母异位词
|
2月前
|
算法 Java
掌握算法学习之字符串经典用法
文章总结了字符串在算法领域的经典用法,特别是通过双指针法来实现字符串的反转操作,并提供了LeetCode上相关题目的Java代码实现,强调了掌握这些技巧对于提升算法思维的重要性。
|
3月前
|
自然语言处理 算法 搜索推荐
字符串相似度算法完全指南:编辑、令牌与序列三类算法的全面解析与深入分析
在自然语言处理领域,人们经常需要比较字符串,这些字符串可能是单词、句子、段落甚至是整个文档。如何快速判断两个单词或句子是否相似,或者相似度是好还是差。这类似于我们使用手机打错一个词,但手机会建议正确的词来修正它,那么这种如何判断字符串相似度呢?本文将详细介绍这个问题。
241 1
|
3月前
|
数据采集 算法 JavaScript
揭开JavaScript字符串搜索的秘密:indexOf、includes与KMP算法
JavaScript字符串搜索涵盖`indexOf`、`includes`及KMP算法。`indexOf`返回子字符串位置,`includes`检查是否包含子字符串。KMP是高效的搜索算法,尤其适合长模式匹配。示例展示了如何在数据采集(如网页爬虫)中使用这些方法,结合代理IP进行安全搜索。代码示例中,搜索百度新闻结果并检测是否含有特定字符串。学习这些技术能提升编程效率和性能。
揭开JavaScript字符串搜索的秘密:indexOf、includes与KMP算法
|
2月前
|
算法 C++
惊爆!KPM算法背后的秘密武器:一行代码揭秘字符串最小周期的终极奥义,让你秒变编程界周期大师!
【8月更文挑战第4天】字符串最小周期问题旨在找出字符串中最短重复子串的长度。KPM(实为KMP,Knuth-Morris-Pratt)算法,虽主要用于字符串匹配,但其生成的前缀函数(next数组)也可用于求解最小周期。核心思想是构建LPS数组,记录模式串中每个位置的最长相等前后缀长度。对于长度为n的字符串S,其最小周期T可通过公式ans = n - LPS[n-1]求得。通过分析周期字符串的特性,可证明该方法的有效性。提供的C++示例代码展示了如何计算给定字符串的最小周期,体现了KPM算法在解决此类问题上的高效性。
52 0
|
3月前
|
算法 Java
KMP算法详解及其在字符串匹配中的应用
KMP算法详解及其在字符串匹配中的应用
|
3月前
|
算法 异构计算
FPGA强化(10):基于Sobel算法的边缘检测(二)
FPGA强化(10):基于Sobel算法的边缘检测(二)
46 0
|
3月前
|
算法 异构计算
FPGA强化(10):基于Sobel算法的边缘检测(一)
FPGA强化(10):基于Sobel算法的边缘检测
25 0
|
4月前
|
存储 算法 Java
Java数据结构与算法:用于高效地存储和检索字符串数据集
Java数据结构与算法:用于高效地存储和检索字符串数据集
|
4月前
|
算法 Java
Java数据结构与算法:字符串匹配算法之暴力匹配
Java数据结构与算法:字符串匹配算法之暴力匹配
下一篇
无影云桌面