Acwing---1460. 我在哪?

我在哪?

  • 1.題目
  • 2.基本思想
  • 3.代碼實現

1.題目

農夫約翰出門沿著馬路散步,但是他現在發現自己可能迷路了!

沿路有一排共 N N N 個農場。

不幸的是農場并沒有編號,這使得約翰難以分辨他在這條路上所處的位置。

然而,每個農場都沿路設有一個彩色的郵箱,所以約翰希望能夠通過查看最近的幾個郵箱的顏色來唯一確定他所在的位置。

每個郵箱的顏色用 A . . Z A..Z A..Z 之間的一個字母來指定,所以沿著道路的 N N N個郵箱的序列可以用一個長為 N N N 的由字母 A . . Z A..Z A..Z 組成的字符串來表示。

某些郵箱可能會有相同的顏色。

約翰想要知道最小的 K K K 的值,使得他查看任意連續 K K K 個郵箱序列,他都可以唯一確定這一序列在道路上的位置。

例如,假設沿路的郵箱序列為 ABCDABC

約翰不能令 K = 3 K=3 K=3,因為如果他看到了 ABC,則沿路有兩個這一連續顏色序列可能所在的位置。

最小可行的 K K K 的值為 K = 4 K=4 K=4,因為如果他查看任意連續 4 4 4 個郵箱,那么可得到的連續顏色序列可以唯一確定他在道路上的位置。

輸入格式
輸入的第一行包含 N,第二行包含一個由 N 個字符組成的字符串,每個字符均在 A…Z 之內。

輸出格式
輸出一行,包含一個整數,為可以解決農夫約翰的問題的最小 K 值。

數據范圍
1 ≤ N ≤ 100 1≤N≤100 1N100

輸入樣例:

7
ABCDABC

輸出樣例:

4

2.基本思想

二分 O(n2logn)

3.代碼實現

import java.util.*;public class _1460我在哪 {static String s;static int n;private static boolean check(int mid) {ArrayList<String> list = new ArrayList<>();for (int i = 0; i + mid - 1 <= n - 1; i++) {//從0開始枚舉長度為 mid的字符串String substring = s.substring(i,  i+mid);if (list.contains(substring)) return false;list.add(substring);}return true;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);n = sc.nextInt();s = sc.next();int l = 1, r = n ;while (l < r) {int mid = (l + r) >> 1;if (check(mid)) r = mid;else l = mid + 1;}System.out.println(l);}
}

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

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

相關文章

Mybatis | 動態SQL

目錄: 動態SQL中的 “元素” :\<if>元素\<choose>、\<when>、\<otherwise>元素\<where>、\<trim>元素\<set>元素\<foreach>元素\<bind>元素 作者簡介 &#xff1a;一只大皮卡丘&#xff0c;計算機專業學生&#xff0c;正…

單細胞Seurat - 降維與細胞標記(4)

本系列持續更新Seurat單細胞分析教程&#xff0c;歡迎關注&#xff01; 非線形降維 Seurat 提供了幾種非線性降維技術&#xff0c;例如 tSNE 和 UMAP&#xff0c;來可視化和探索這些數據集。這些算法的目標是學習數據集中的底層結構&#xff0c;以便將相似的細胞放在低維空間中…

__vueParentComponent和__vue__獲取dom元素上的vue實例

vue2: 使用__vue__ const el document.querySelector(.xxx); const vueInstance el.__vue__;vue3: 使用 __vueParentComponent const el document.querySelector(.xxx); const vueInstance el.__vueParentComponent;

Python錯題集-4:NameError:(變量名錯誤)

1問題描述 Traceback (most recent call last): File "D:\pycharm\projects\1-可視化學習\8.3更改小提琴圖的中位數、均值、顏色等.py", line 8, in <module> violin_parts plt.violinplot(data, showmediansTrue, showmeansTrue) …

代碼隨想錄算法訓練營第四十四天 完全背包 、零錢兌換 II 、組合總和 Ⅳ

代碼隨想錄算法訓練營第四十四天 | 完全背包 、零錢兌換 II 、組合總和 Ⅳ 完全背包 題目鏈接&#xff1a;題目頁面 (kamacoder.com) 解釋一、01背包 一維 &#xff1a;為什么要倒序遍歷背包&#xff1f; 首先要明白二維數組的遞推過程&#xff0c;然后才能看懂二維變一維的…

【MATLAB源碼-第150期】基于matlab的開普勒優化算法(KOA)機器人柵格路徑規劃,輸出做短路徑圖和適應度曲線。

操作環境&#xff1a; MATLAB 2022a 1、算法描述 開普勒優化算法&#xff08;Kepler Optimization Algorithm, KOA&#xff09;是一個虛構的、靈感來自天文學的優化算法&#xff0c;它借鑒了開普勒行星運動定律的概念來設計。在這個構想中&#xff0c;算法模仿行星圍繞太陽的…

項目風險:測試大佬結合實例告訴你如何應對!

項目有風險 今天下午15點&#xff0c;團隊成員D向他的主管Z反饋他測試的項目有風險&#xff1a;項目在測試周期內&#xff0c;但在用例評審時發現有一處功能邏輯有爭議&#xff0c;需要產品經理跟業務方確認&#xff0c;可能出現的情況有&#xff1a; 1 不變更需求&#xff0…

【技巧】SpringCloud Gateway實現多子域(單個應用開放多個端口)

0. 目錄 1. 需求背景2. 實現3. 額外 - 其它Servlet容器實現3.1 Undertow3.2 Tomcat 4. 相關 1. 需求背景 瀏覽器針對單個網站地址(ipport)存在“6個請求”限制&#xff1b;通過多子域配置可以突破這個限制&#xff0c;增加網站的響應效率&#xff0c;尤其是針對三維服務這類大…

【深入了解設計模式】組合設計模式

組合設計模式 組合模式是一種結構型設計模式&#xff0c;它允許你將對象組合成樹狀結構來表現“整體-部分”關系。組合模式使得客戶端可以統一對待單個對象和組合對象&#xff0c;從而使得代碼更加靈活和易于擴展。 概述 ? 對于這個圖片肯定會非常熟悉&#xff0c;上圖我們可…

Carla自動駕駛仿真九:車輛變道路徑規劃

文章目錄 前言一、關鍵函數二、完整代碼效果 前言 本文介紹一種在carla中比較簡單的變道路徑規劃方法&#xff0c;主要核心是調用carla的GlobalRoutePlanner模塊和PID控制模塊實現變道&#xff0c;大體的框架如下圖所示。 一、關鍵函數 1、get_spawn_point(),該函數根據指定r…

c語言字符串函數之strcpy函數,strnpy函數

strcpy函數 語法格式 strcpy(字符數組1,字符串2&#xff09; 它的作用是把字符串2復制到字符數組1里面 #include<stdio.h> #include<string.h> int main() {char c[]"河南";char d[]"安徽";char d[];printf("%s\n",strcpy(c,d));…

力扣hot100題解(python版41-43題)

41、二叉樹的層序遍歷 給你二叉樹的根節點 root &#xff0c;返回其節點值的 層序遍歷 。 &#xff08;即逐層地&#xff0c;從左到右訪問所有節點&#xff09;。 示例 1&#xff1a; 輸入&#xff1a;root [3,9,20,null,null,15,7] 輸出&#xff1a;[[3],[9,20],[15,7]]示例…

【C語言結構體】用戶自定義類型--結構體,結構體傳參,位段,聯合體和枚舉【圖文詳解】

歡迎來CILMY23的博客喔&#xff0c;本篇為【C語言結構體】用戶自定義類型--結構體&#xff0c;結構體傳參&#xff0c;位段&#xff0c;聯合體和枚舉【圖文詳解】&#xff0c;感謝觀看&#xff0c;支持的可以給個一鍵三連&#xff0c;點贊關注收藏。 前言 上一篇&#xff08;ht…

GO—函數

Go 語言支持普通函數、匿名函數和閉包&#xff0c;從設計上對函數進行了優化和改進&#xff0c;讓函數使用起來更加方便。 Go 語言的函數屬于“一等公民”&#xff08;first-class&#xff09;&#xff0c;也就是說&#xff1a; 函數本身可以作為值進行傳遞。支持匿名函數和閉…

Leetcode.2369 檢查數組是否存在有效劃分

題目鏈接 Leetcode.2369 檢查數組是否存在有效劃分 rating : 1780 題目描述 給你一個下標從 0 0 0 開始的整數數組 n u m s nums nums &#xff0c;你必須將數組劃分為一個或多個 連續 子數組。 如果獲得的這些子數組中每個都能滿足下述條件 之一 &#xff0c;則可以稱其為…

推薦6款SSH遠程連接工具

1、Xshell 介紹&#xff1a; xshell是一個非常強大的安全終端模擬軟件&#xff0c;它支持SSH1, SSH2, 以及Windows平臺的TELNET 協議。Xshell可以在Windows界面下用來訪問遠端不同系統下的服務器&#xff0c;從而比較好的達到遠程控制終端的目的。 業界最強大的SSH客戶機 官…

數據分析-Pandas數據的直方圖探查

數據分析-Pandas數據的直方圖探查 數據分析和處理中&#xff0c;難免會遇到各種數據&#xff0c;那么數據呈現怎樣的規律呢&#xff1f;不管金融數據&#xff0c;風控數據&#xff0c;營銷數據等等&#xff0c;莫不如此。如何通過圖示展示數據的規律&#xff1f; 數據表&…

農產品質量追溯系統—功能介紹(2)

儲藏管理 儲藏信息管理對需要儲藏的農產品,記錄儲藏的相關信息,如儲藏開始時間、存放倉庫、操作人員、儲藏原因等; 倉庫信息管理物流管理 物流公司管理對相關的物流公司信息進行登記,以便于管理和追溯; 車輛管理

我的秋招數據分析崗面經分享(京東,美團,阿里,拼多多,vivo,滴滴)

節前&#xff0c;我們社群組織了一場技術&面試討論會&#xff0c;邀請了一些互聯網大廠同學、參加社招和校招面試的同學&#xff0c;針對新手如何入門數據分析、機器學習算法、該如何備戰面試、面試常考點分享等熱門話題進行了深入的討論。 基于社群的討論&#xff0c;今天…

力扣爆刷第84天之hot100五連刷6-10

力扣爆刷第84天之hot100五連刷6-10 文章目錄 力扣爆刷第84天之hot100五連刷6-10一、15. 三數之和二、42. 接雨水三、3. 無重復字符的最長子串四、438. 找到字符串中所有字母異位詞五、560. 和為 K 的子數組 一、15. 三數之和 題目鏈接&#xff1a;https://leetcode.cn/problem…