Java字符串编程--最长连续字母序列的长度

Java生成指定长度并且包含大小写字母数字字符串示例 public class JUID { /** * 随机生成输入长度的字符串,生成策略:前序列位[A-Z]-[0-9]-[a-z]{length/3},后余位随机 * @param length 所要生成的字符串长度 * @return String 生成的随机字符串 */ public String createUID(int length){ if(length return 阅读详情

给定一个 query 和一个 text,均由小写字母组成。要求在 text 中找出以同样的顺序连 续出现在 query 中的最长连续字母序列的长度。例如, query 为“acbac”,text 为 “acaccbabb”,那么 text 中的“cba”为最长的连续出现在 query 中的字母序列,因此, 返回结果应该为其长度 3。请注意程序效率。

思路:用一个矩阵来记录两个字符串中所有位置的两个字符之间的匹配情况,若是匹配则为1,否则为0。然后求出对角线最长的1序列,其对应的位置就是最长匹配子串的位置.

当字符匹配的时候,不是简单的给相应元素赋上1,而是赋上其左上角元素的值加1。我们用两个标记变量来标记矩阵中值最大的元素的位置,在矩阵生成的过程中来判断当前生成的元素的值是不是最大的,据此来改变标记变量的值,那么到矩阵完成的时候,最长匹配子串的位置和长度就已经出来了。

实例如下:

     a    c    b    a    c

a   1    0    0    1    0   

c   0    2    0    0    2

a   1    0    0    1    0

c   0    2    0    0    2

c   0    1    0    0    1

b   0    0    2    0    0

a   1    0    0    3    0    

b   0    0    1    0    0

b   0    0    1    0    0


/**
 * Created by Art on 2015/8/15.
 */
public class GetLCSLength {
    public static void main(String[] args) {
        String query = "acbac";
        String text = "acaccbabb";
        System.out.println(getLength(query,text));
    }
    public static int getLength(String query, String text){
        char[] querys = query.toCharArray();
        char[] texts = text.toCharArray();
        int queryLength = querys.length;
        int textLength = texts.length;
        int[][] flags = new int[queryLength][textLength];
        int result = 0;
        for (int i = 0; i < queryLength; i++) {
            for (int j = 0; j < textLength; j++) {
                if(querys[i] == texts[j]){
                    if(i == 0 || j == 0)
                        flags[i][j] = 1;
                    else {
                        flags[i][j] = flags[i-1][j-1] + 1;
                    }
                    if(flags[i][j] > result)
                        result = flags[i][j];
                }
            }
        }
        return result;
    }
}

结果:

3


http://my.oschina.net/gaosheng/blog/308853

Java 求解最长连续递增序列 文章目录一、题目二、贪心代码三、动态规划代码四、总结 一、题目 给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。 连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], …, nums[r - 1], nums[r]] 就是连续递增子序列。 二、贪心代码 只要遇到 nums[i + 1] > n 阅读详情

相关推荐

ICT调试技巧:从基础到实战的全面指南

本文提供了一份全面的ICT调试技巧指南,涵盖从基础认知到实战应用的全过程。详细解析了ICT设备硬件结构、程序文件构成,并重点讲解了调试界面的核心参数与高效快捷键。通过跳线、电阻、电容及二极管等常见元器件的实战调试案例,分享了参数设置要点与典型问题解决方案,帮助工程师快速掌握ICT调试核心技能,提升测试效率与准确性。

weixin_29202213的博客 342

给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false。——Java实现

题目举例: 示例 1: 输入: A = “ab”, B = “ba” 输出: true 示例 2: 输入: A = “aaaaaaabc”, B = “aaaaaaacb” 输出: true 示例 3: 输入: A = “”, B = “aa” 输出: false 提示: 0 <= A.length <= 20000 0 <= B.length <= 20000 A和B仅由小写字母构成。 Java代码: Java运行结果: ...

ling08140814的博客 1342

Zemax光学设计——单透镜设计

(1)在镜头数据编辑器中面2那一栏中的“曲率半径”栏右侧的方格中单击,弹出“在面2上的曲率解”对话框(2)将对话框中的求解类型设为“F数”(3)将“F/#”设置为10设置完成后,其中的一些数据会发生变化在初始结构中,透镜的曲率半径和厚度未知,,这些参数需要软件自动优化得到,但可以使用透镜后表面上边缘厚度解得到近轴焦平面的位置在透镜后表面的厚度上单击鼠标右键,选择边缘光线求解类型,它表示近轴边缘光线会自动在下一个表面上聚焦并确定距离值。

yangSHU21的博客 2万+

2. 给定一个 query 和一个 text,均由小写字母组成。要求在 text 中找出以同样的顺序连 续出现在 query 中的最长连续字母序列的长度。例如, query 为“acbac”,text

2. 给定一个 query 和一个 text,均由小写字母组成。要求在 text 中找出以同样的顺序连 续出现在 query 中的最长连续字母序列的长度。例如, query 为“acbac”,text 为 “acaccbabb”,那么 text 中的“cba”为最长的连续出现在 query 中的字母序列,因此, 返回结果应该为其长度 3。请注意程序效率。  [分值:20] 您的回答:(空)  (...

comeonzeze的博客 551

【深度学习】肺结节分割项目实战二:分割肺实质

在后续训练模型的时候如果直接使用原始的肺部CT图像,其中的非肺区域会对训练造成干扰,因此我们需要提取分割肺实质。这一部分参考了kaggle上的教程。 从这张CT图像中可以看出扫描器以外的部分为黑色,背景和肺内部颜色较深,非肺组织和骨头颜色较浅。我们的目的是将肺部分割出来。由于肺部区域和其他部分对比明显,我们可以设置一个合适的阈值对图像中的区域进行隔离。 import argparse import os import numpy as np from medpy.filter.smoothing imp

weixin_42182906的博客 7242

【北大核心-代码复现】基于 VMD-FFCM-iTransformer 光伏功率短期预测

【北大核心-代码复现】基于 VMD-FFCM-iTransformer 光伏功率短期预测

767

【Java】字符串编程练习_2

编写人机交互程序,设计中英文单词对照表,输入中文,显示相应英文单词,输入英文单词,显示中文

weixin_57807561的博客 590

基于STM32、HAL库、I2C接口的姿态传感器/陀螺仪之ICM-42670-P驱动 C语言程序设计

/ 设置加速度计和陀螺仪的工作模式。// 读取加速度计和陀螺仪数据。

corlin6688的博客 1181

【无标题】给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等。比如 Beijing 和 Hebei 2:两个字符串不

用于字符串的比较

m0_70872015的博客 835

i.MX6ULL系统移植 | 使用busybox制作根文件系统(1.29.0)

一. 下载BusyBox BusyBox是一个继承了大量Linux命令核工具的软件,像常用的ls、cp、mv、ifconfig等命令。一般下载BusyBox的源码,然后配置Busybox,选择自己想要的功能,最后编译即可。 BusyBox在官方可以直接下载:https://www.busybox.net/。目前最新是1.35.0,这里我使用1.29.0版本。 axel https://www.busybox.net/downloads/busybox-1.29.0.tar.bz2 下载之后解压: tar

Mculover666的博客(嵌入式) 1146

uniapp H5刷新页面后返回按钮失效问题完美解决方案

这个问题其实很隐蔽,尤其是uniapp H5 场景下刷新导致栈清理,很多开发者一开始都懵掉了。uniapp 内部对「页面栈只有一个」时的返回逻辑是reLaunch;所以只要在这个分支里替换为自己的逻辑(比如),就能顺利实现预期。目前我在项目里已经跑通了,暂时没发现问题。不得不说,知道源码里这个逻辑后,真的是醍醐灌顶,只能膜拜框架大佬了 🤯。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 524

java 字符串第一个字符_Java面试官:输出一个字符串的连续子字符串?

最近,Python 小星参加“菜鸟裹裹”的 Java 技术三面,其中有一个环节是钉钉共享屏幕现场编程。Java 编程题目:下面 @Python大星 介绍一种解法,抛砖引玉,如果你觉得这个方法有优化的空间或者有更好的解法,欢迎留言,大家一起探讨。如果你一开始对题目有疑惑,请第一时间咨询面试官,顺便给自己争取一点时间。一、什么是最长连续子序列??① 最长这里需要做一个比较,类似于冒泡排序,找最大值② ...

weixin_39866963的博客 191

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

java 输出一个爱心_Java面试官:输出一个字符串的连续子字符串?

最近,Python 小星参加“菜鸟裹裹”的 Java 技术三面,其中有一个环节是钉钉共享屏幕现场编程。Java 编程题目:下面 @Python大星 介绍一种解法,抛砖引玉,如果你觉得这个方法有优化的空间或者有更好的解法,欢迎留言,大家一起探讨。如果你一开始对题目有疑惑,请第一时间咨询面试官,顺便给自己争取一点时间。一、什么是最长连续子序列??① 最长这里需要做一个比较,类似于冒泡排序,找最大值② ...

weixin_30704909的博客 114

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java算法 字母异位词分组 、最长连续序列

文章通过哈希表的方法解决了字母异位词分组 和最长连续序列的问题。

qq_51744939的博客 321

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

[阿里2015校招笔试]求字符串query和text最长连续字母序列的长度

直接上代码 /** * 求字符串query和text最长连续字母序列的长度 原理: 1.以query.length()和text.length()组成矩阵martix; * 2.矩阵martix[i][j]对应的字符相同,则该节点赋值为1; 3.若当前字符相同节点的值 martix[i][j]= * martix[i-1][j-1] +1,则当前节点的值就是最大公用子串的长

cjllife的专栏 1106

最长连续字母序列的长度

1006.最长连续字母序列的长度 Description 给定一个 query 和一个 text,均由小写字母组成。要求在 text 中找出以同样的顺序连续出现在 query 中的最长连续字母序列的长度。例如, query 为“acbac”,text 为 “acaccbabb”,那么 text 中的“cba”为最长的连续出现在 query 中的字母序列,因此, 返回结果应该为其长度 3。请注意...

gx_up 1326

力扣hot100:字母异位词分组和最长连续序列(49,128)

这篇文章分享了力扣hot100中两道哈希相关题目的解法:1. 字母异位词分组:通过将字符串排序后作为哈希表键来分组,时间复杂度O(nklogk);2. 最长连续序列:利用HashSet去重后,仅从序列起点扩展统计长度,实现O(n)时间复杂度。两种解法都巧妙运用了哈希表的特性,展示了处理数组查找问题的优化思路,包括排序归一化、起点定位等核心技巧。

ze15829163918的博客 691

java中如何获取一个字符串的长度呢?

java代码获取字符串长度的方法分享

qq_25073223的博客 2万+

LC-两数之和、字母异位词分组、最长连续序列、移动零、盛最多水的容器

直到左右指针相遇。

m0_73902080的博客 1055

java调用序列_使用Java 8函数式编程生成字母序列

在 Java 8 中使用函数式编程生成字母序列是一个很大的挑战。Lukas Eder 愉快地接受了这个挑战,他将告诉我们如何使用 Java 8 来生成ABC的序列——当然,肯定不是一种蹩脚的方式。我被 Stack Overflow 上网友“mip”提的一个有趣的问题给难住了。该问题是:大家应该能够很快认出这是 Excel spreadsheet 的头部,准确的样子如下:到现在为止,没有一个答案是使...

weixin_26849971的博客 213

如何使用Java 8函数式编程生成字母序列

我偶然发现了用户“ mip”一个有趣的堆栈溢出问题 。 问题是: 我正在寻找一种生成字母序列的方法: A, B, C, ..., Z, AA, AB, AC, ..., ZZ. 可以很快将其识别为Excel电子表格的标题,正是这样: 到目前为止,没有答案使用任何Java 8函数式编程,我认为这是一个挑战。 我们将使用jOOλ ,因为Java 8 Stream API不能为...

最佳 Java 编程 254

使用Java 8函数式编程生成字母序列

在 Java 8 中使用函数式编程生成字母序列是一个很大的挑战。Lukas Eder 愉快地接受了这个挑战,他将告诉我们如何使用 Java 8 来生成ABC的序列——当然,肯定不是一种蹩脚的方式。     我被 Stack Overflow 上网友“mip”提的一个有趣的问题给难住了。该问题是: 我正在寻找一种生成下列字母序列的方式: A, B, C, …, Z, AA, AB,

Commander 906

【力扣hot100】1. 两数之和 49.字母异位词分组 128. 最长连续序列

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。,将所有字符串按照字典序排序,那么每一组字母异位词将排序成同一个字符串,,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。每一个连续数列都存在头结点和尾结点,本题关键在于如何判断头尾节点。是由重新排列源单词的所有字母得到的一个新单词。**进阶:**你可以想出一个时间复杂度小于。整数,并返回它们的数组下标。给你一个字符串数组,请你将。你可以按任意顺序返回答案。给定一个未排序的整数数组。,请你在该数组中找出。

now or never 718

力扣hot100(Java)——哈希系列(两数之和、字母异位词分组、最长连续序列)

力扣hot100(Java)——哈希系列(两数之和、字母异位词分组、最长连续序列)

qq_63955073的博客 493

刷题日常(数据流中的中位数,逆波兰表达式求值,最长连续序列,字母异位词分组)

刷题日常(数据流中的中位数,逆波兰表达式求值,最长连续序列,字母异位词分组)

chaodddddd的博客 934
上一篇: java杨氏矩阵查找算法
下一篇: java中的final关键字所起的作用
kaiseu
博客等级 码龄15年 27粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值