LeetCode - Easy - 14. Longest Common Prefix

Topic

  • String

Description

https://leetcode.com/problems/longest-common-prefix/

Write a function to find the longest common prefix string amongst an array of strings.

If there is no common prefix, return an empty string “”.

Example 1:

Input: strs = ["flower","flow","flight"]
Output: "fl"

Example 2:

Input: strs = ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.

Constraints:

  • 0 <= strs.length <= 200
  • 0 <= strs[i].length <= 200
  • strs[i] consists of only lower-case English letters.

Analysis

Submission

public class LongestCommonPrefix {// 方法一:我寫的public String longestCommonPrefix1(String[] strs) {if (strs == null || strs.length == 0)return "";StringBuilder sb = new StringBuilder();out: for (int i = 0; i < strs[0].length(); i++) {char current = strs[0].charAt(i);for (int j = 1; j < strs.length; j++) {if (strs[j].length() == i || strs[j].charAt(i) != current)break out;}sb.append(current);}return sb.toString();}// 方法二:public String longestCommonPrefix2(String[] strs) {if (strs == null || strs.length == 0)return "";for (int i = 0; i < strs[0].length(); i++) {char current = strs[0].charAt(i);for (int j = 1; j < strs.length; j++) {if (strs[j].length() == i || strs[j].charAt(i) != current)return strs[0].substring(0, i);}}return strs[0];}// 方法三:public String longestCommonPrefix3(String[] strs) {if (strs == null)return null;if (strs.length == 0)return "";String theShortest = strs[0], theLongest = strs[0];for (String str : strs) {if (str.compareTo(theShortest) < 0)theShortest = str;if (str.compareTo(theLongest) > 0)theLongest = str;}int i = 0;while (i < theShortest.length() && theShortest.charAt(i) == theLongest.charAt(i))i++;return theShortest.substring(0, i);
}

Test

import static org.junit.Assert.*;
import org.junit.Test;public class LongestCommonPrefixTest {@Testpublic void test() {LongestCommonPrefix obj = new LongestCommonPrefix();final String[] array1 = {"flower", "flow", "flight"};assertEquals("fl", obj.longestCommonPrefix1(array1));assertEquals("fl", obj.longestCommonPrefix2(array1));assertEquals("fl", obj.longestCommonPrefix3(array1));final String[] array2 = {"dog", "racecar", "car"};assertEquals("", obj.longestCommonPrefix1(array2));assertEquals("", obj.longestCommonPrefix2(array2));assertEquals("", obj.longestCommonPrefix3(array2));}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445745.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445745.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445745.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux 虛函數調用性能,C++對象布局及多態實現探索之虛函數調用

我們再看看虛成員函數的調用。類C041中含有虛成員函數&#xff0c;它的定義如下&#xff1a;struct C041{C041() : c_(0x01) {}virtual void foo() { c_ 0x02; }char c_;};執行如下代碼&#xff1a;C041 obj;PRINT_DETAIL(C041, obj)PRINT_VTABLE_ITEM(obj, 0, 0)obj.foo();C0…

netflow流量分析工具 linux,Centos5/Linux安裝Nfdump和Nfsen圖形界面分析netflow數據

Nfdump是linux下netflow數據采集分析工具&#xff0c;Nfsen是基于nfdump是web界面工具&#xff0c;服務器需先安裝web服務器和php環境。安裝rrdtool及所需組件&#xff1a;yum install perl-rrdtool rrdtool rrdtool-devel rrdutils flex byacc安裝所需perl模塊&#xff1a;yum…

linux嵌入式平臺測試,protobuf-c 在arm linux 嵌入式平臺的使用 測試

關于什么是protobuf&#xff0c;網上搜搜一大堆&#xff0c;很多人用的都還是json&#xff0c;以為json是多種語言傳輸數據是萬能的&#xff0c;看完了protobuf的實現&#xff0c;就明白了簡單高效才是王道。1、首先寫一個.proto擴展名的文件json.proto&#xff0c;內容格式如下…

Linux gitpush錯誤,linux – GIT:無法推送(奇怪的配置問題)

我正在全新安裝Linux Mint.嘗試從任何存儲庫推送時,我收到以下錯誤&#xff1a;error: Malformed value for push.default: simpleerror: Must be one of nothing,matching,tracking or current.fatal: bad config file line 8 in /home/leng/.gitconfigfatal: Could not read …

linux+shell+func,Linux shell編程筆記總結

Linux Shell學習筆記簡介Linux系統的shell作為操作系統的外殼&#xff0c;為用戶提供使用操作系統的接口。它是命令語言、命令解釋程序及程序設計語言的統稱。shell是用戶和Linux內核之間的接口程序&#xff0c;如果把Linux內核想象成一個球體的中心&#xff0c;shell就是圍繞內…

linux版車機安裝步驟,RedHat Linux 9.0的安裝(詳細圖解安裝過程)

RedHat Linux版本:" b, t) b) b# }, t# z- fC& S$ x0 }) GRedHat Linux是目前世界上使用最多的Linux操作系統。因為它具備最好的圖形界面&#xff0c;無論是安裝、配置還是使用都十分方便&#xff0c;而且運行穩定&#xff0c;因此不論是新手還是老玩家都對它有很高的…

linux中網頁播放音樂,Linux_在Linux系統下播放網頁中的背景音樂技巧,在Linux中的firefox瀏覽許多網頁 - phpStudy...

在Linux系統下播放網頁中的背景音樂技巧在Linux中的firefox瀏覽許多網頁時&#xff0c;很多使用了基于WMP的背景音樂播放器&#xff0c;如部份baidu空間。但firefox默認不支持播放。在LINUX的源中&#xff0c;有一為kaffeine-mozilla-plugin&#xff0c;能在firefox中使用kaffe…

簡單了解linux,linux簡單了解

今天主要了解下linuxlinux目錄結構包含:/&#xff1a;代表根目錄bin(binaries):存放二進制可執行文件sbin(super user binaries)&#xff1a;存放二進制可執行文件&#xff0c;只有root才能訪問etc(etcetera)存放系統配置文件usr(unix shared resource)&#xff1a;用于存放共享…

C語言多個變量運算存儲過程,postgresql函數中的賦值運算和postgresql函數存儲過程實現數據批量插入...

今天檢查大家寫的postgresql函數時&#xff0c;發現有的家伙不遵守postgresql關于函數中的賦值運算表示方式&#xff1a;variable : value注意的是&#xff0c;是:表示賦值運算&#xff0c;而不是單獨一個等號。這一點和delphi相似&#xff1f;另外&#xff0c;postgresql中關于…

c語言盜取qq號程序,C++獲取本機登陸過的QQ號碼示例程序

// FileName: GetQQ.cpp#include "stdafx.h" // 如果編譯出錯請刪除這句#include "GetQQ.h"GetQQ::GetQQ(){}GetQQ::~GetQQ(){}std::vector GetQQ::Init(void){TCHAR pathBuffer[MAX_PATH] {0};::SHGetSpecialFolderPath(NULL, pathBuffer…

夫曼編碼譯碼系統課程設計實驗報告(含源代碼c++_c語言),哈夫曼編碼譯碼系統課程設計實驗報告(含源代碼C++_C語言)[1]...

目 錄摘 要 ………………………………………………………………………..……………… II Abstract …………………………………………………………………………..………... II 第一章 課題描述………………………..………………………………………………….. 1 1.1 問題描述………

二級c語言評分標準一樣嗎,計算機二級評分嚴格嗎 步驟錯了有分嗎

計算機二級考試不是人工閱卷&#xff0c;是由計算機評分&#xff0c;所以是很嚴格的。計算機二級機器閱卷主要看的是最后的輸出文件&#xff0c;如果步驟錯了導致結果不正確的話&#xff0c;也是沒有分的。計算機二級評分標準計算機二級考試是電腦自動評分的&#xff0c;即上機…

c語言a 尋路算法,JS/HTML5游戲常用算法之路徑搜索算法 A*尋路算法完整實例

本文實例講述了JS/HTML5游戲常用算法之路徑搜索算法 A*尋路算法。分享給大家供大家參考&#xff0c;具體如下&#xff1a;完整實例代碼如下&#xff1a;A*尋路算法#stage {border: 1px solid lightgray;}window.onload function () {var stage document.querySelector(#stage…

在wsl下運行c語言,在Windows10通過WSL架設linux/gcc c語言學習環境

在Windows10通過WSL架設linux/gcc c語言學習環境零&#xff1a;簡單介紹與先決條件中國一般的大學C課程中都使用很過時的編譯器來進行教授——比如說什么visual studio 6.0啊&#xff0c;dev c啊。以筆者的眼界所看到的C語言教程中&#xff0c;大多都建議學習者在Linux環境下學…

android二級聯動購物車,Android實現二級購物車的全選加反選、總價功能

本文實例為大家分享了Android實現二級購物車的全選加反選、總價的具體代碼&#xff0c;供大家參考&#xff0c;具體內容如下MainActivityimport android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.LinearLayoutManager;imp…

android studio gradle 自動更新,android studio gradle 兩種更新方法更新

又快一年沒有使用AS了&#xff0c;正好要查看一個Android項目代碼&#xff0c;干脆升級到新版試試看新變化&#xff0c;舊版本為3.1.2&#xff0c;目前最新版本為3.4.2&#xff0c;AS的升級是很簡單的直接update等待即可.升級完了&#xff0c;打開GIT下載的項目&#xff0c;啟動…

android安全 報告,Android安全檢測報告

1.高危 Intent Scheme URL攻擊詳情&#xff1a;惡意頁面可以通過Intent scheme URL執行基于Intent的攻擊建議&#xff1a;將Intent的component/selector設置為null2.高危 WebView應用克隆風險詳情&#xff1a;APP使用WebView訪問網絡&#xff0c;當開啟了允許JS腳本訪問本地文件…

android定時循環,Android AlarmManager實現定時循環后臺任務

這篇文章使用AlarmManager實現了Android定時后臺循環任務。使用場景&#xff1a;項目需要app每隔一段時間就去服務端請求一次接口&#xff0c;從而更新本地保存的信息。AlarmManager簡介AlarmManager是Android中常用的一種系統級別的提示服務&#xff0c;在特定的時刻為我們廣播…

android 線性布局蒙層,Android開發 - 掌握ConstraintLayout(一)傳統布局的問題

在傳統的Android開發中&#xff0c;頁面布局占用了我們很多的開發時間&#xff0c;而且面對復雜頁面的時候&#xff0c;傳統的一些布局會顯得非常復雜&#xff0c;每種布局都有特定的應用場景&#xff0c;我們通常需要各種布局結合起來使用來實現復雜的頁面。隨著ConstraintLay…

android sdk 4.4.4,4.4.4 not in Android SDK manager

問題I need to do some testing with 4.4.4 and it isnt available in my Android SDK Manager?Any ideas on what Im doing wrong?回答1:There is no problem at you Android SDK Manager, you just have to download the API 19.The API 19 is used by all the KitKat devi…