10.优化算法之字符串

news2024/12/23 18:12:16

1.最长公共前缀

14. 最长公共前缀 - 力扣(LeetCode)

class Solution {
    public static String longestCommonPrefix(String[] strs) {
        if(strs==null||strs.length==0){
            return "";
        }
        int length=strs.length;
        for(int i=0;i<strs[0].length();i++){//第一个字符串的截止范围
            char ch=strs[0].charAt(i);//字符串的第一个字母
            for(int j=1;j<length;j++){//和每一个字符串是否匹配
                if(i==strs[j].length()||strs[j].charAt(i)!=ch){
                    //弹出的条件
                    return strs[0].substring(0,i);
                }
            }
        }
        return strs[0];
    }
}

 2.最长回文子串

5. 最长回文子串 - 力扣(LeetCode)

class Solution {
    public String longestPalindrome(String s) {
        int begin=0,len=0,n=s.length();
        for(int i=0;i<n;i++){
            //先扩展奇数长度的子串
            int left=i,right=i;
            while(left>=0&&right<n&&s.charAt(left)==s.charAt(right)){
                left--;
                right++;
            }
            if(right-left-1>len){
                begin=left+1;
                len=right-left-1;
            }
            //扩展偶数长度的子串
            left=i;right=i+1;
            while(left>=0&&right<n&&s.charAt(left)==s.charAt(right)){
                left--;
                right++;
            }
            if(right-left-1>len){
                begin=left+1;
                len=right-left-1;
            }
            
        }
        return s.substring(begin,begin+len);
    }
}

 3.二进制求和

67. 二进制求和 - 力扣(LeetCode)

class Solution {
    public String addBinary(String a, String b) {
        StringBuffer ret=new StringBuffer();
        int cur1=a.length()-1,cur2=b.length()-1;
        int t=0;
        while(cur1>=0||cur2>=0||t!=0){
            if(cur1>=0){
                t=t+a.charAt(cur1--)-'0';
            }
            if(cur2>=0){
                t=t+b.charAt(cur2--)-'0';
            }
            ret.append((char)('0' + (t % 2)));
            t=t/2;
        }
        ret.reverse();
        return ret.toString();
    }
}

4.字符串相乘 

43. 字符串相乘 - 力扣(LeetCode)

class Solution {
    public String multiply(String num1, String num2) {
        int m = num1.length(), n = num2.length();
        char[] n1 = new StringBuffer(num1).reverse().toString().toCharArray();
        char[] n2 = new StringBuffer(num2).reverse().toString().toCharArray();
        int[] tmp = new int[m + n - 1];
        // 1. ⽆进位相乘后相加
        for (int i = 0; i < m; i++)
            for (int j = 0; j < n; j++)
                tmp[i + j] += (n1[i] - '0') * (n2[j] - '0');

        // 2. 处理进位
        int cur = 0, t = 0;
        StringBuffer ret = new StringBuffer();
        while (cur < m + n - 1 || t != 0) {
            if (cur < m + n - 1)
                t += tmp[cur++];
            ret.append((char) (t % 10 + '0'));
            t /= 10;
        }

        // 3. 处理进位
        while (ret.length() > 1 && ret.charAt(ret.length() - 1) == '0')
            ret.deleteCharAt((ret.length() - 1));

        return ret.reverse().toString();
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1885133.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FMEA培训如何助你成为工作领域的“稳中求胜”高手

在竞争激烈的职场环境中&#xff0c;每个人都渴望掌握一门能够让自己脱颖而出的技能。而FMEA&#xff08;失效模式与影响分析&#xff09;正是这样一门强大的工具&#xff0c;它不仅能够帮助我们识别并预防潜在的问题&#xff0c;还能提升工作效率&#xff0c;确保项目的顺利进…

从BeanFactory源码看Bean的生命周期

下图是我搜索“Spring Bean生命周期”找到的图片&#xff0c;来自文章——Spring Bean的生命周期 [](https://img2022.cnblogs.com/blog/1942408/202207/1942408-20220713150530777-1198523052.png) 下面&#xff0c;我们从AbstractAutowireCapableBeanFactory的源码中来分析…

无偏归一化自适应心电ECG信号降噪方法(MATLAB)

心电信号作为一种生物信号&#xff0c;含有大量的临床应用价值的信息&#xff0c;在现代生命医学研究中占有重要的地位。但心电信号低频、低幅值的特点&#xff0c;使其在采集和传输的过程中经常受到噪声的干扰&#xff0c;使心电波形严重失真&#xff0c;从而影响后续的病情分…

无人机企业需要什么资质?

无人机企业所需的资质主要可以分为几大类&#xff0c;以确保其合法、安全、高效地进行相关业务活动。以下是对这些资质的详细解释和归纳&#xff1a; 1. 基础企业资质&#xff1a; - 工商营业执照&#xff1a;这是企业合法经营的基本证书&#xff0c;所有企业都需要取得。无人…

查询 条件列值用notepad++批量添加单引号和逗号

参考&#xff1a;Notepad批量添加引号_notepad字符串统一加引号-CSDN博客 我需要批量修改数据表中某一列值指定的部分列&#xff0c;比如某个编号为CP0408242321001到CP0408242321101的条件。 我从数据表中把这个条件的所有编号复制出来了粘贴到了notepad里面。 如下图所示 从…

Softmax作为分类任务中神经网络输出层的优劣分析

Softmax作为分类任务中神经网络输出层的优劣分析 在深度学习领域&#xff0c;Softmax函数作为分类任务中神经网络的输出层&#xff0c;被广泛应用并展现出强大的优势。然而&#xff0c;任何技术都有其两面性&#xff0c;Softmax函数也不例外。本文将从多个角度深入分析Softmax…

大型语言模型的长期记忆能力--HippoRAG

在人工智能领域&#xff0c;特别是自然语言处理&#xff08;NLP&#xff09;中&#xff0c;大型语言模型&#xff08;LLMs&#xff09;的长期记忆能力一直是研究的热点和难点。人类大脑能够在不断变化的环境中存储和更新大量知识&#xff0c;而现有的LLMs在预训练后整合新经验时…

高考志愿填报,优先选专业还是选学校?

高考后的学生&#xff0c;都会纠结选专业还是选学校了&#xff0c;这应该是每年都会出现的情况&#xff0c;其实专业和学校的关系就有点像是蛋糕和餐厅的关系&#xff0c;你到底想选一个美味的蛋糕还是选一个更好的餐厅呢&#xff1f;从某个角度来说&#xff0c;其实不管专业还…

QT学习积累——如何提高Qt遍历list的效率

目录 引出Qt遍历list提高效率显示函数的调用使用&与不使用&除法的一个坑 总结自定义信号和槽1.自定义信号2.自定义槽3.建立连接4.进行触发 自定义信号重载带参数的按钮触发信号触发信号拓展 lambda表达式返回值mutable修饰案例 引出 QT学习积累——如何提高Qt遍历list…

【文末赠书13】推荐系统中冷启动环节的设计实现

【文末赠书13】《智能网联汽车&#xff1a;激光与视觉SLAM详解》 写在最前面写在最前面推荐系统中的冷启动1、用户冷启动2、物料冷启动3、PID算法 《推荐系统全链路设计&#xff1a;原理解读与业务实践》内容简介&#xff1a; &#x1f308;你好呀&#xff01;我是 是Yu欸 &am…

PHP语言学习02

好久不见&#xff0c;学如逆水行舟&#xff0c;不进则退&#xff0c;真是这样。。。突然感觉自己有点废。。。 <?php phpinfo(); ?> 新生第一个代码。 要想看到运行结果&#xff0c;打开浏览器&#xff08;127.0.0.1/start/demo01.php&#xff09; 其中&#xff0c…

WPF布局控件

目录 Grid StackPanel WrapPanel DockPanel UniformGrid Canvas&InkCanvas Canvas InkCanvas Border Grid 属性 ShowGridLines&#xff1a;显示边线 ColumnDefinitions 列集合 表示有几列下面就写几个ColumnDefinition Width 宽&#xff1a;如果写具体数字则表…

智能井盖监测系统:守护城市安全的新防线

​ ​​在快速发展的现代都市中&#xff0c;井盖作为连接地上与地下世界的“隐形门”&#xff0c;其安全状态直接关系到市民的生命财产安全。随着物联网、大数据及人工智能技术的飞速发展&#xff0c;智能井盖监测系统的出现为解决传统井盖管理难题提供了创新方案&#xff0…

给小程序接入AI服务之后,我的睡后收入又增加了

自从本人写了《[从零开始三天学会微信小程序开发]》教程以来&#xff0c;不断有人加我&#xff0c;一起交流微信小程序开发的事情&#xff0c;很让人开心。 也有一些人和我说&#xff0c;现在已经是AI时代了&#xff0c;怎么还用这种固定内容的模式呢&#xff1f;确实是的&…

ROS2使用Python开发动作通信

1.创建接口节点 cd chapt4_ws/ ros2 pkg create robot_control_interfaces --build-type ament_cmake --destination-directory src --maintainer-name "joe" --maintainer-email "1027038527qq.com" mkdir -p src/robot_control_interfaces/action touch…

STM32自己从零开始实操08:电机电路原理图

一、LC滤波电路 其实以下的滤波都可以叫低通滤波器。 1.1倒 “L” 型 LC 滤波电路 1.1.1定性分析 1.1.2仿真实验 电感&#xff1a;通低频阻高频的。仿真中高频信号通过电感&#xff0c;因为电感会阻止电流发生变化&#xff0c;故说阻止高频信号 电容&#xff1a;隔直通交。…

MAS1102量产工具下载,MAS1102+N48R固件开卡软件分享

最近买了一款某牌子的固态硬盘&#xff0c;拆开后发现采用的是联云MAS1102主控&#xff0c;闪存颗粒是N48R&#xff0c;如下图。 查了一下MAS1102主控&#xff0c;是联芸科技基于SATA3.2技术开发的DRAM-less SSD控制芯片&#xff0c;支持2.5寸/HalfSlim/M.2/mSATA版型&#xff…

S7-1500PLC控制V90总线伺服报“编码器故障“

S7-1500PLC控制V90总线伺服报编码器故障&#xff0c;如下图所示&#xff1a; 1、编码器故障 2、编码器配置 3、自动选择编码器值

深度解读 OkHttpClient2

介绍 OkHttpClient 是 OkHttp 库的核心类&#xff0c;它管理连接、线程池和配置选项。OkHttpClient 提供了强大的功能和灵活的配置选项&#xff0c;使得它成为 Android 和 Java 应用中广泛使用的 HTTP 客户端。 在本文中&#xff0c;我们将深入解读 OkHttpClient&#xff0c;…

基于PHP安龙县农产品销售网站的设计与实现13137

目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3论文结构与章节安排 2 相关技术介绍 2.1 PHP描述 2.2 MySQL数据库 2.3 Think PHP框架 3网站分析 3.1 可行性分析 3.2 网站流程分析 3.2.1 数据新增流程 3.2.2 数据删除流程 3.3 网站功能分析 3.3.1 功能性分析…