【专项刷题】— 字符串

news/2024/9/19 4:53:32/ 标签: java, 哈希算法, 开发语言

1、最长公共前缀 - 力扣(LeetCode)

思路:

  1. 解法一:两两比较字符串
  2. 解法二:比较每一个字符串的同一位
  3. 图解:
  4. 代码:
    java">class Solution {public String longestCommonPrefix(String[] strs) {String ret = strs[0];for(int i = 1; i < strs.length; i++){//调用方法,两两比较ret = commonStr(strs[i],ret);}return ret;}public String commonStr(String str1, String str2){int i = 0;//进行比较while(i < Math.min(str1.length(),str2.length()) && str1.charAt(i) == str2.charAt(i)){i++;}return str1.substring(0,i);}
    }
    
    java">public String longestCommonPrefix(String[] strs) {int n = strs.length;for(int i = 0; i < strs[0].length(); i++){//以第一组的字符串为基准char tmp = strs[0].charAt(i);//判断每一组的字符串for(int j = 1; j < n; j++){//如果后面的字符串长度刚好等于基准的 i ,或者不相等就返回if(i == strs[j].length() || strs[j].charAt(i) != tmp){//返回截取的基准return strs[0].substring(0,i);}}}//说明基准就是最长公共前缀return strs[0];}

2、​​​​​​最长回文子串 - 力扣(LeetCode) 

思路:

  1. 从中心开始向右向左遍历,其中需要考虑子串长度为奇数和偶数的情况
  2. 代码:
    java">public String longestPalindrome(String s) {int n = s.length();int begin = 0; int len = 0;//固定所有的点for(int i = 0; i < n; i++){//奇数情况int left = i;int right = i;while(left >= 0 && right < n && s.charAt(left) == s.charAt(right)){left--;right++;}if(right - left - 1 > len){len = right - left - 1;begin = left + 1;}//偶数情况,i+1left = i;right = i+1;while(left >= 0 && right < n && s.charAt(left) == s.charAt(right)){left--;right++;}if(right - left - 1 > len){len = right - left - 1;//此时left和right的位置都是不合法的位置,需要各自回退begin = left + 1;}}return s.substring(begin,begin + len);}

 3、二进制求和 - 力扣(LeetCode)

思路:

  1. 对两个字符串从后往前相加操作,模2,然后再除2更新t,最后将字符串反转就是结果了
  2. 代码:
    java">public String addBinary(String a, String b) {int len1 = a.length() - 1;int len2 = b.length() - 1;int t = 0;StringBuffer ret = new StringBuffer();while(len1 >= 0 || len2 >= 0 || t != 0){if(len1 >= 0){//加完就向前一个t += a.charAt(len1--) - '0';}if(len2 >= 0){t += b.charAt(len2--) - '0';}//拼接最终结果ret.append((char)('0' + (char)(t % 2)));//更新t的值t /= 2;}return ret.reverse().toString();}

 4、字符串相乘 - 力扣(LeetCode)

思路:

  1. 首先将两个字符翻转,便于模拟乘法操作
  2. 然后再无进位相乘然后再相加,最后处理进位
  3. 其中相加的位置就是 i + j 位置,数组的长度就是 两个字符串的长度减去1(99 * 99,长度就是2+2-1 = 3)
  4. 代码:
    java">public String multiply(String num1, String num2) {int m = num1.length();int n = num2.length();int[] tmp = new int[m + n - 1];//1、翻转字符串char[] n1 = new StringBuffer(num1).reverse().toString().toCharArray(); char[] n2 = new StringBuffer(num2).reverse().toString().toCharArray(); //2、进行无进位相乘、相加操作for(int i = 0; i < m; i++){for(int j = 0; j < n; j++){//每一位循环都相加tmp[i + j] += (n1[i] - '0') * (n2[j] - '0');}}//3、处理进位int cur = 0;int t = 0;StringBuffer ret = new StringBuffer();while(cur < m + n - 1 || t != 0){if(cur < m + n - 1){t += tmp[cur++];}ret.append((char)((char)(t % 10) + '0'));t /= 10;}//4、处理前导0while(ret.length() > 1 && ret.charAt(ret.length() - 1) == '0'){ret.deleteCharAt(ret.length()-1);}return ret.reverse().toString();}

http://www.ppmy.cn/news/1520940.html

相关文章

集成电路学习:什么是IDE集成开发环境

IDE&#xff1a;集成开发环境 IDE&#xff0c;全称“Integrated Development Environment”&#xff0c;即集成开发环境&#xff0c;是一种用于提供程序开发环境的应用程序。它集成了代码编写、分析、编译、调试等多种功能于一体的开发软件服务套&#xff0c;为开发者提供了一个…

采用基于企业服务总线(ESB)的面向服务架构(SOA)集成方案实现统一管理维护的银行信息系统

目录 案例 【题目】 【问题 1】(7 分) 【问题 2】(12 分) 【问题 3】(6 分) 【答案】 【问题 1】解析 【问题 2】解析 【问题 3】解析 相关推荐 案例 阅读以下关于 Web 系统设计的叙述&#xff0c;在答题纸上回答问题 1 至问题 3。 【题目】 某银行拟将以分行为主体…

微博视频无水印下载的方法

在如今的数字时代&#xff0c;社交媒体平台如微博已经成为人们分享日常生活、获取新闻和娱乐内容的重要渠道。我们时常会在刷微博时看到一些有趣的视频图片&#xff0c;或是名人的访谈&#xff0c;或是搞笑的短片&#xff0c;有时甚至是一些珍贵的历史资料。这些视频不仅内容丰…

一个“改造”的工厂背后:中国电商的AI重构

电商行业需要更加注重交易的本质&#xff0c;即提供高质量的产品和服务&#xff0c;保护消费者权益&#xff0c;促进公平竞争&#xff0c;提高透明度。 电商产业应该回归到交易、流通和成交这些基本层面&#xff0c;而不是仅仅依赖于价格竞争或者服务的过度承诺。 而大模型所…

R18 XR :NR L2 enhancement

这篇主要看下为支持XR,L2都有哪些增强。主要分3个部分:(1)additionalBS-TableAllowed和Delay Status Report(DSR) (2)UE assistance info for UL traffic information (3) PDU set discard。正文开始: 为了增强 XR 上行资源的调度,引入了以下改进: (1)一个额外的buffer s…

css重置样式表 reset.css 格式化默认css样式

css重置样式表 reset.css 格式化默认css样式 html, body, div, span, applet, object, iframe,h1, h2, h3, h4, h5, h6, p, blockquote, pre,a, abbr, acronym, address, big, cite, code,del, dfn, em, img, ins, kbd, q, s, samp,small, strike, strong, sub, sup, tt, var,b…

Django+Vue酒店推荐系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 需要的环境3.2 Django接口层3.3 实体类3.4 config.ini3.5 启动类3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质创作者&…

线性代数教材书籍推荐

INTRODUCTION TO LINEAR ALGEBRA, 线性代数导论&#xff0c;GILBERT STRANG &#xff0c;有第六版中译本&#xff0c;网上也有第五版英文电子版&#xff0c;个人认为讲理论最好的教材 Practical Linear Algebra for Data Science&#xff0c;From Core Concepts to Applicatio…

【Python机器学习】NLP词频背后的含义——主成分分析

目录 三维向量上的PCA 回归NLP 基于PCA的短消息语义分析 基于截断的SVD的短消息语义分析 基于LSA的垃圾短消息分类的效果 LSA和SVD的增强 当SVD用于降维时&#xff0c;主成分分析&#xff08;PCA&#xff09;是SVD的另一个叫法。scikit-learn中的PCA模型对SVD做了一些调整…

强推!创新直发核心!时序分解+优化组合+模型对比!VMD-SSA-Transformer-BiLSTM多变量时间序列预测

强推&#xff01;创新直发核心&#xff01;时序分解优化组合模型对比&#xff01;VMD-SSA-Transformer-BiLSTM多变量时间序列预测 目录 强推&#xff01;创新直发核心&#xff01;时序分解优化组合模型对比&#xff01;VMD-SSA-Transformer-BiLSTM多变量时间序列预测效果一览基…

学学vue-1

vue 0 安装 装node.js&#xff0c;以及cnpm&#xff08;npm超时或者被屏蔽&#xff0c;安装cnpm国内镜像&#xff09; 查看安装版本&#xff08;是否安装成功&#xff09; node -v 安装成功之后也会安装npm npm -v cnpm镜像 npm install -g cnpm --registryhttp://registry.np…

安全检查报告模板

概述 本报告旨在对公司的数据、系统安全、管理制度进行自查&#xff0c;并提出相应的整改方案。通过深入分析和评估&#xff0c;发现并解决潜在的安全风险和漏洞&#xff0c;提升公司的数据和系统安全性。 自查结果 2.1数据安全自查结果 1、数据备份与恢复&#xff1a;根据…

大屏可视化:阿里 DataV 大屏怎么做自适应的?

你好&#xff0c;我是沐爸&#xff0c;欢迎点赞、收藏、评论和关注。 阿里 DataV 大屏是一款功能强大的数据可视化应用搭建工具&#xff0c;由阿里云提供&#xff0c;旨在帮助用户通过图形化的界面轻松搭建专业水准的可视化应用。 下面我们一起看下 DataV 大屏 是如何做自适应…

Android 读取 XML 文件之 SAX 解析编码模板

一、SAX 解析概述 SAX&#xff08;Simple API for XML&#xff09;是一种基于事件的 XML 解析技术&#xff0c;它一边读取 XML 文件一边解析&#xff0c;占用内存少&#xff0c;适用于大型文件 SAX 解析器会触发一系列事件&#xff0c;例如&#xff0c;开始解析元素、结束解析…

【微处理器系统原理和应用设计第六讲】片上微处理器系统系统架构

一、概念辨析 首先来厘清以下概念&#xff1a;微处理器&#xff0c;微控制器&#xff0c;单片机&#xff0c;片上微处理器系统 &#xff08;1&#xff09;微处理器&#xff1a;即MPU&#xff08;Microprocessor Unit&#xff09;&#xff0c;微处理器是一种计算机的中央处理单…

【Next】5. 全局权限管理

以下笔记来源&#xff1a;编程导航 需求 能够灵活配置每个页面所需要的用户权限&#xff0c;由全局权限管理系统自动校验和拦截路由&#xff0c;而不需要在每个页面中编写权限校验代码&#xff0c;提高开发效率。&#xff08;路由权限&#xff09;还要能够根据权限控制导航菜单…

生活因科技而美好:一键解锁PDF处理的无限可能

前言 “科技&#xff0c;是时代的诗篇&#xff0c;书写着人类不断超越自我、追求卓越的壮丽篇章。”这一理念深刻地影响着每一位开发者&#xff0c;他们不断探索、创新&#xff0c;旨在为用户带来更加便捷、高效的生活体验。正是在这样的背景下&#xff0c;一款旨在提升PDF处理…

MySQL case when【用法详解】

MySQL case when【用法详解】 语法1. 简单CASE表达式2. 搜索CASE表达式 示例示例1&#xff1a;使用简单CASE表达式示例2&#xff1a;使用搜索CASE表达式示例3&#xff1a;在UPDATE语句中使用CASE示例4&#xff1a;在DELETE语句中使用CASE注意事项 总结 在MySQL中&#xff0c;CA…

【技术解析】工厂内部导航系统:高精度定位与智能路径规划的技术实现

一、工厂内部导航系统概述 工厂内部导航系统集成了最新的GPS室内定位技术、蓝牙定位技术&#xff0c;实现了对工厂内部环境的无缝覆盖与高精度定位。无论是繁忙的生产线、错综复杂的仓库还是广阔的厂区&#xff0c;都能轻松应对。 二、工厂内部导航系统核心功能 实时定位&…

深度学习的发展历程

深度学习的起源 在机器学习中&#xff0c;我们经常使用两种方式来表示特征&#xff1a;局部表示&#xff08;Local Representation&#xff09;和分布式表示&#xff08;Distributed Representation&#xff09;。以颜色表示为例&#xff0c;见下图&#xff1a; 要学习到一种好…