4_最长公共前缀

news2024/11/25 23:45:43

我首先想到的方法就是暴力匹配法,刚开始我自己写的代码长这样,运行结果是错误的 。发现是循环的控制变量不对,导致计算结果出错。应该比较所有的vec[i][0],vec[i][1]......,而不是比较vec[0][j],vec[1][j]......。就是应该让i先遍历一圈,再遍历j。有思路但是不会写。

代码

#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
	vector<string> vec;
	vec.push_back("abdower");
	vec.push_back("abdowt");
	vec.push_back("abdight");

	/*vec.push_back("dog");
	vec.push_back("racecar");
	vec.push_back("car");*/
	for (auto c : vec)
	{
		cout << c << ", ";
	}
	if (!vec.empty())
	{
		for (int i = 0; i < vec.size(); ++i)
		{
			for (int j = 0; j < vec[i].size(); ++j)
			{
				if (vec[i][j] != vec[i+1][j])
				{
					cout << " ";
					return -1;
				}

				else
					cout << vec[i][j];
					/*while (vec[i][j] == vec[i + 1][j])
					{
						{
							cout << vec[i][j];
							++j;
						}
						++i;
					}*/
			}
		}
	}
	
	return 0;
}

直到看见题解中的暴力匹配法

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

尤其是这一行,瞬间懂了怎样修改遍历顺序 

 for (int i = 0; 1; ++ i)

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

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

相关文章

科研绘图配色

01 配色的基本原则 颜色需要有自身的意义。不同的颜色表示不同的分组&#xff0c;相近的颜色表示同一个分组&#xff1b;配色需要展现数据逻辑关系&#xff0c;突出关键数据&#xff0c;比如重要的数据用深色或暖色表示&#xff0c;不重要的数据用浅色或冷色表示。 色彩种类两…

通达OA inc/package/down.php接口未授权访问漏洞复现 [附POC]

文章目录 通达OA inc/package/down.php接口未授权访问漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 通达OA inc/package/down.php接口未授权访问漏洞复现 [附POC] 0x01 前言 免责声明&#x…

SimpleDateFormat在多线程下的安全问题

目录 情景重现 SimpleDateFormat解析 解决方案 局部变量 加锁 使用线程变量 使用DateTimeFormatter 情景重现 SimpleDateFormat类是Java开发中的一个日期时间的转化类。它可以满足绝大多数的开发场景&#xff0c;但是在高并发下会出现并发问题。接下来查看下文中的案例。…

导出CSV文件

从数据库导出csv文件 从HeidiSQL 导数据出来成.csv文件 SELECT * FROM csv INTO OUTFILE C:\\feiniu\\note\\csv\\demo.csv fields terminated by , CSV是什么 跟Excel表差不多 csv与excel对比&#xff1a; csv只能用于存储纯文本内容&#xff0c;excel不仅支持纯文本内容…

Fwupd 1.9.9 发布

Fwupd 1.9.9 开源 Linux 固件升级工具今天发布了另一个维护更新&#xff0c;解决了各种错误并扩展了硬件支持。 继 fwupd 1.9.8 发布不到一周&#xff0c;fwupd 1.9.9 版本又推出了对联想 ThinkPad X1 Yoga Gen7 530E 二合一笔记本电脑和研华 BMC 设备的支持&#xff0c;以及对…

【目标跟踪】光流跟踪(python、c++代码)

文章目录 前言一、代码流程与思路二、python 代码2.1 代码详解2.2 完整代码 三、c 代码四、结果展示 前言 光流利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系&#xff0c;从而计算出相邻帧之间物体的运动信息的一种方法。…

OSHI-操作系统和硬件信息库

文章目录 引言一、快速入门1.1 OSHI的简介1.2 引入依赖1.3 涉及的包&#xff08;package&#xff09;1.4 涉及的核心类 二、操作系统信息&#xff1a;OperatingSystem2.1 总揽2.2 文件系统信息&#xff1a;FileSystem2.3 网络参数信息&#xff1a;NetworkParams2.4 进程信息&am…

【2023年APMCM亚太杯C题】完整代码+结果分析+论文框架(二)

2023年APMCM亚太杯C题 3、4问 问题三问题分析技术文档基于相关性分析的汽车产业影响分析3.1 分布检验模型的建立3.2 相关性模型的建立3.3 模型求解 问题四问题分析技术文档4 基于 Kruskal-Wallis H 检验的政策影响研究4.1 分布检验模型的建立4.2 方差齐性检验模型的建立4.3 Kru…

软件测试人员如何快速成长?

文章标题有点大&#xff0c;更贴切的描述应该是测试人员如何在工作中快速积累经验和提高技能。但是这么描述太长了&#xff0c;根据自己的工作经验和经历&#xff0c;谈一些个人观点。 在这我也准备了一份软件测试视频教程&#xff08;含接口、自动化、性能等&#xff09;&…

EXCEL小技巧, 用2种公式方法,查找1列数据里符合条件的最后1个单元格

目录 1 问题 2 解决办法 3 lookup()变形公式&#xff0c; lookup(1,0/((列1条件1)*(列2条件2)) 3.1 公式用法 3.2 局限性 4 数组公式&#xff0c;INDEX(H:H,MAX(IF(I:IK4,ROW(H:H)))) 4.1 语法 1问题 一般来说&#xff0c;EXCEL里使用 match()等只能查到符合条件的第一…

作为用户,推荐算法真的是最优解么?

前言 众所周知&#xff0c;随着互联网技术的发展&#xff0c;推荐算法也越来越普及。无论是购物网站、社交媒体平台还是在线影视平台&#xff0c;推荐算法已成为用户获取相关信息的主要途径。据悉&#xff0c;近期GitHub决定结合算法推荐&#xff0c;将“Following”和“For Yo…

Django连接数据库

连接数据库 接下来讲的几个步骤不需要区分先后&#xff0c;但都得进行操作 settings.py的操作 #!settings.py ....别的代码DATABASES {default: { ENGINE: django.db.backends.mysql, NAME: day1121, # 数据库名字&#xff0c;要先创建好 USER: root, PASSWORD: 123456, HO…

解决Unable to preventDefault inside passive event listener invocation.报错

报错信息&#xff1a; 这个报错大致说的是&#xff1a;无法在被动事件侦听器调用中防止Default 查了其他博主的解决办法&#xff1a;比如&#xff1a; 1、声明事件监听的时候设置为主动事件监听&#xff1a; window.addEventListener(‘touchmove’, handler, { passive: fal…

【方法】PowerPoint如何删除“限制编辑”?

如果PPT文件设置成“只读模式”&#xff0c;就会被限制编辑&#xff0c;也就是无法对PPT进行编辑或更改&#xff0c;那要如何删除这个“限制”呢&#xff1f; 下面小编会按照“无密码的只读方式”、“有密码的只读方式”以及“忘记了密码的只读方式”这3种情况&#xff0c;来说…

LabVIEW使用软件定义进行汽车电子测试

LabVIEW使用软件定义进行汽车电子测试 电子元件的逻辑和稳健性一直都是需要评估的对象。过去&#xff0c;汽车仅使用几种电子元件来执行简单的功能&#xff0c;每个元件都是在专门准备的环境中单独进行的。但随着电子元件日益多样化&#xff0c;且功能日益复杂&#xff0c;这种…

Vue修改密码功能的源代码

基本需求 输入框不能为空 旧密码表单提交时必须正确 两次输入新密码一致 限定新密码的复杂度&#xff0c;这里是长度在 6 到 20 个字符 <template><el-form ref"form" :model"user" :rules"rules" label-width"80px"><…

postgres在docker中使用

记录个人开发过程中postgres在docker中的使用&#xff0c;以便后续查看。 Dockerfile 个人是在M1电脑上开发&#xff0c;所以platform使用linux/amd64来兼容amd芯片。 FROM --platformlinux/amd64 postgres:16.1-alpine COPY ./poetrydb.sql /docker-entrypoint-initdb.d/po…

Jira Software最新版本(9.11.2)安装

软件获取 Jira Software 历史版本下载地址&#xff1a;Jira Server 下载存档 | Atlassian Atlassian-agent.jar https://github.com/haxqer/confluence/releases/download/v1.3.3/atlassian-agent.jar MySQL 驱动包 MySQL :: Download MySQL Connector/J (Archived Versio…

用Sublime编写Lua脚本

大家好&#xff0c;我是阿赵。   现在很多手游项目使用lua作为热更新的代码脚本&#xff0c;我一直很喜欢用Sublime来写lua程序。喜欢使用它的原因是它的轻量化&#xff0c;因为我经常要同时打开多个项目&#xff0c;Unity和VisualStudio这些软件都比较占用电脑的性能&#x…

Pycharm修改文件默认打开方式 + CSV Editor插件使用

1、File —> Settings —> Editor —> File Types 然后将*csv添加到最上面 在plugins中下载插件&#xff0c;CSV Editor 备注&#xff1a;不在上一步的“File Types”中将*.csv设置为CSV格式&#xff0c;插件是不起作用的 就可以使用了