27.日常算法

news/2025/1/30 4:32:26/

1. 最后一个单词的长度

题目来源
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

示例 1:
输入:s = “Hello World”
输出:5
解释:最后一个单词是“World”,长度为 5。

class Solution {
public:int lengthOfLastWord(string s) {int n = s.size();int end = n - 1;while (end >= 0){if (s[end] == ' ') end--;else break;}int idx = end;while (idx >= 0){if (s[idx] == ' ') break;idx--;}return end - idx;}
};

2. 最长公共前缀

题目来源
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。

示例 1:
输入:strs = [“flower”,“flow”,“flight”]
输出:“fl”

class Solution {
public:string longestCommonPrefix(vector<string>& strs) {for (int i = 0; i < strs[0].size(); i++){char ch = strs[0][i];for (int j = 1; j < strs.size(); j++){if (strs[j][i] != ch || i == strs[j].size()) return strs[0].substr(0, i);}}return strs[0];}
};

二分查找

class Solution {
public:string longestCommonPrefix(vector<string>& strs) {int minlen = min_element(strs.begin(), strs.end(), [](const string& s, const string& t) {return s.size() < t.size();})->size(); // min_element返回的是strs中长度最短的字符串的迭代器,所以这里需要->size()获取长度int left = 0, right = minlen;while (left < right){int mid = (right - left + 1) / 2 + left;if (isCommon(strs, mid)){left = mid;}else right = mid - 1;}return strs[0].substr(0, right);}bool isCommon(vector<string>& strs, int len){string temp = strs[0].substr(0, len);for (int i = 1; i < strs.size(); i++){for (int j = 0; j < temp.size(); j++){if (temp[j] != strs[i][j]) return false;}}return true;}
};

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

相关文章

为AI聊天工具添加一个知识系统 之74 详细设计之15 正则表达式 之2

本文要点 要点 本项目&#xff08;为AI聊天工具添加一个知识系统&#xff09;中的正则表达式。 正则表达式的三“比”。正则表达式被 一、排比为三种符号&#xff08;元符号-圈号&#xff0c;特殊符号-引号&#xff0c;普通符号-括号&#xff09; 引号<<a线性回归bo…

设计模式的艺术-代理模式

结构性模式的名称、定义、学习难度和使用频率如下表所示&#xff1a; 1.如何理解代理模式 代理模式&#xff08;Proxy Pattern&#xff09;&#xff1a;给某一个对象提供一个代理&#xff0c;并由代理对象控制对原对象的引用。代理模式是一种对象结构型模式。 代理模式类型较多…

谷云科技陆才慧:数据集成,被忽视的数字化转型“幕后英雄”

大数据产业创新服务媒体 ——聚焦数据 改变商业 科技飞速发展&#xff0c;大数据浪潮席卷全球&#xff0c;数字化脚步日趋加快&#xff0c;然而数据集成在大众的认知中却似乎没有很大的变化。那么事实果真如此吗&#xff1f;答案是否定的。即使在AI功能日趋完善的当下&#xf…

【开源免费】基于SpringBoot+Vue.JS贸易行业crm系统(JAVA毕业设计)

本文项目编号 T 153 &#xff0c;文末自助获取源码 \color{red}{T153&#xff0c;文末自助获取源码} T153&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

电路理论基础Day01

1&#xff0c;高压输电 &#xff1a;耗能少&#xff0c;因为电压高&#xff0c;电流小。工业上产生电的功率不变&#xff0c;PIU&#xff0c;I变小&#xff0c;P耗I方R&#xff0c;所以耗能少。 2&#xff0c;大部分传输信号的电流用的是交流电。当然也可以用直流电。最早的就…

games101-(5/6)

光栅化 投影完成之后&#xff0c;视图区域被确定在从[-1,1]的单位矩阵中&#xff0c;下一步就是光栅化 长宽比&#xff1a;ratio 垂直的可视角度&#xff1a;fild-of-view 可以看到的y 轴的范围&#xff0c;角度越小 越接近正交投影 屏幕坐标系 、 将多边形转化成像素 显示…

C语言内存管理详解

C语言不像其他高级语言那样提供自动内存管理&#xff0c;它要求程序员手动进行内存的分配和释放。在C语言中&#xff0c;动态内存的管理主要依赖于 malloc、calloc、realloc 和 free 等函数。理解这些函数的用法、内存泄漏的原因及其防止方法&#xff0c;对于编写高效、可靠的C…

苍穹外卖使用MyBatis-Plus

系列博客目录 文章目录 系列博客目录一、修改sky-take-out项目的pom.xml文件1.修改lombok依赖的版本号2.修改spring-boot-starter-parent父工程的版本号3.增加依赖 二、修改sky-server模块的pom.xml文件1.增加mysql连接的依赖&#xff08;版本为8.0以上&#xff09;2.增加两个依…