最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Java解決華為機(jī)試實(shí)現(xiàn)密碼截取?

 更新時(shí)間:2022年02月23日 08:45:40   作者:97的風(fēng)  
這篇文章主要介紹了基于Java解決華為機(jī)試實(shí)現(xiàn)密碼截取,文章圍繞主題相關(guān)資料展開(kāi)詳細(xì)內(nèi)容,具有一的參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)你有所幫助

1.簡(jiǎn)述

描述:

Catcher是MCA國(guó)的情報(bào)員,他工作時(shí)發(fā)現(xiàn)敵國(guó)會(huì)用一些對(duì)稱的密碼進(jìn)行通信,比如像這些ABBA,ABA,A,123321,但是他們有時(shí)會(huì)在開(kāi)始或結(jié)束時(shí)加入一些無(wú)關(guān)的字符以防止別國(guó)破解。比如進(jìn)行下列變化 ABBA->12ABBA,ABA->ABAKK,123321->51233214 。因?yàn)榻孬@的串太長(zhǎng)了,而且存在多種可能的情況(abaaab可看作是aba,或baaab的加密形式),Cathcer的工作量實(shí)在是太大了,他只能向電腦高手求助,你能幫Catcher找出最長(zhǎng)的有效密碼串嗎?

數(shù)據(jù)范圍:字符串長(zhǎng)度滿足1 \le n \le 2500 \1≤n≤2500 

輸入描述:

輸入一個(gè)字符串(字符串的長(zhǎng)度不超過(guò)2500)

輸出描述:

返回有效密碼串的最大長(zhǎng)度

示例1

輸入:

ABBA

輸出:

4

示例2

輸入:

ABBBA

輸出:

5

示例3

輸入:

12HHHHA

復(fù)制輸出:

4

2.代碼實(shí)現(xiàn)

?解題思路:

最長(zhǎng)回文子串的中心擴(kuò)散法,遍歷每個(gè)字符作為中間位,進(jìn)行左右比較

算法流程:

從右到左,對(duì)每個(gè)字符進(jìn)行遍歷處理,并且每個(gè)字符要處理兩次,因?yàn)榛匚淖哟袃煞N情況:

ABA型:只需要從當(dāng)前字符向兩邊擴(kuò)散,比較左右字符是否相等,找出以當(dāng)前字符為中心的最長(zhǎng)回文子串長(zhǎng)度

ABBA型:只需要從當(dāng)前字符和下一個(gè)字符向兩邊擴(kuò)散,比較左右字符是否相等,找出以當(dāng)前字符和下一個(gè)字符為中心的最長(zhǎng)回文子串長(zhǎng)度

最后比對(duì)兩種類型的長(zhǎng)度,取自較長(zhǎng)的長(zhǎng)度

import java.util.Scanner;
public class Main {
? ? public static void main(String[] args) {
? ? ? ? Scanner sc = new Scanner(System.in);
? ? ? ? String s = sc.nextLine();
? ? ? ? System.out.println(solution(s));
? ? }
? ??
? ? private static int solution(String s) {
? ? ? ? int res = 0;
? ? ? ? for(int i = 0; i < s.length(); i++) {
? ? ? ? ? ? // ABA型
? ? ? ? ? ? int len1 = longest(s, i, i);
? ? ? ? ? ? // ABBA型
? ? ? ? ? ? int len2 = longest(s, i, i + 1);
? ? ? ? ? ? res = Math.max(res, len1 > len2 ? len1 : len2);
? ? ? ? }
? ? ? ? return res;
? ? }
? ??
? ? private static int longest(String s, int l, int r) {
? ? ? ? while(l >= 0 && r < s.length() && s.charAt(l) == s.charAt(r)) {
? ? ? ? ? ? l--;
? ? ? ? ? ? r++;
? ? ? ? }
? ? ? ? return r - l - 1;
? ? }
}

方法二:動(dòng)態(tài)規(guī)劃

解題思路:

對(duì)于最值問(wèn)題,往往可以采用動(dòng)態(tài)規(guī)劃思想降低時(shí)間復(fù)雜度和狀態(tài)壓縮,采用空間換時(shí)間的思想

算法流程:

確定狀態(tài):對(duì)比的兩個(gè)字符索引起始和終止索引位置

定義 dp 數(shù)組:字符串s的 i 到 j 索引位置的字符組成的子串是否為回文子串

狀態(tài)轉(zhuǎn)移: 如果左右兩字符相等, 同時(shí)[l+1...r-1]范圍內(nèi)的字符是回文子串, 則[l...r] 也是回文子串

狀態(tài)轉(zhuǎn)移的同時(shí),不斷更新對(duì)比的子串長(zhǎng)度,最終確定最長(zhǎng)回文子串的長(zhǎng)度

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
? ? public static void main(String[] args) throws IOException {
? ? ? ? BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
? ? ? ? String s = "";
? ? ? ? while ((s = br.readLine()) != null) {
? ? ? ? ? ? System.out.println(validLen(s));
? ? ? ? }
? ? ? ? br.close();
? ? }

? ? public static int validLen(String s) {
? ? ? ? int len = s.length();
? ? ? ? // 狀態(tài):對(duì)比的兩個(gè)字符索引起始和終止索引位置
? ? ? ? // 定義: 字符串s的i到j(luò)字符組成的子串是否為回文子串
? ? ? ? boolean[][] dp = new boolean[len][len];
? ? ? ? int res = 0;
? ? ? ? // base case
? ? ? ? for(int i = 0; i < len - 1; i++) {
? ? ? ? ? ? dp[i][i] = true;
? ? ? ? }

? ? ? ? for(int r = 1; r < len; r++) {
? ? ? ? ? ? for(int l = 0; l < r; l++) {
? ? ? ? ? ? ? ? // 狀態(tài)轉(zhuǎn)移:如果左右兩字符相等,同時(shí)[l+1...r-1]范圍內(nèi)的字符是回文子串
? ? ? ? ? ? ? ? // 則 [l...r] 也是回文子串
? ? ? ? ? ? ? ? if(s.charAt(l) == s.charAt(r) && (r-l <= 2 || dp[l+1][r-1])) {
? ? ? ? ? ? ? ? ? ? dp[l][r] = true;
? ? ? ? ? ? ? ? ? ? // 不斷更新最大長(zhǎng)度
? ? ? ? ? ? ? ? ? ? res = Math.max(res, r - l + 1);
? ? ? ? ? ? ? ? }?
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return res;
? ? }
}

到此這篇關(guān)于基于Java解決華為機(jī)試實(shí)現(xiàn)密碼截取 的文章就介紹到這了,更多相關(guān)Java密碼截取 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot?正確的在異步線程中使用request的示例代碼

    springboot?正確的在異步線程中使用request的示例代碼

    這篇文章主要介紹了springboot中如何正確的在異步線程中使用request,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • 一篇文章帶你初步認(rèn)識(shí)Maven

    一篇文章帶你初步認(rèn)識(shí)Maven

    這篇文章主要為大家初步認(rèn)識(shí)了Maven,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • Java Spring分別實(shí)現(xiàn)定時(shí)任務(wù)方法

    Java Spring分別實(shí)現(xiàn)定時(shí)任務(wù)方法

    這篇文章主要為大家詳細(xì)介紹了Java與Spring設(shè)置動(dòng)態(tài)定時(shí)任務(wù)的方法,定時(shí)任務(wù)的應(yīng)用場(chǎng)景十分廣泛,如定時(shí)清理文件、定時(shí)生成報(bào)表、定時(shí)數(shù)據(jù)同步備份等
    2022-07-07
  • Spring?BeanDefinition父子關(guān)系示例解析

    Spring?BeanDefinition父子關(guān)系示例解析

    這篇文章主要為大家介紹了Spring?BeanDefinition父子關(guān)系示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Java格式化日期和時(shí)間三種方法

    Java格式化日期和時(shí)間三種方法

    這篇文章主要給大家介紹了關(guān)于Java格式化日期和時(shí)間三種方法的相關(guān)資料,最近遇到很多在Java里獲取當(dāng)前時(shí)間的問(wèn)題,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • idea推送項(xiàng)目到gitee中的創(chuàng)建方法

    idea推送項(xiàng)目到gitee中的創(chuàng)建方法

    這篇文章主要介紹了idea推送項(xiàng)目到gitee中的創(chuàng)建方法,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • SSH框架網(wǎng)上商城項(xiàng)目第11戰(zhàn)之查詢和刪除商品功能實(shí)現(xiàn)

    SSH框架網(wǎng)上商城項(xiàng)目第11戰(zhàn)之查詢和刪除商品功能實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了SSH框架網(wǎng)上商城項(xiàng)目第11戰(zhàn)之查詢和刪除商品功能實(shí)現(xiàn)的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Spring boot 連接多數(shù)據(jù)源過(guò)程詳解

    Spring boot 連接多數(shù)據(jù)源過(guò)程詳解

    這篇文章主要介紹了Spring boot 連接多數(shù)據(jù)源過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • spring boot項(xiàng)目生成docker鏡像并完成容器部署的方法步驟

    spring boot項(xiàng)目生成docker鏡像并完成容器部署的方法步驟

    這篇文章主要介紹了spring boot項(xiàng)目生成docker鏡像并完成容器部署的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Java的原子類無(wú)鎖并發(fā)利器詳解

    Java的原子類無(wú)鎖并發(fā)利器詳解

    這篇文章主要介紹了Java的原子類無(wú)鎖并發(fā)利器詳解,原子類同樣能夠解決互斥性問(wèn)題、原子性問(wèn)題除此之外,因?yàn)樵宇愂菬o(wú)鎖操作,沒(méi)有用互斥鎖解決帶來(lái)的加鎖解決性能消耗,這種絕佳方案是怎么做到的呢,需要的朋友可以參考下
    2023-12-12

最新評(píng)論

瑞丽市| 两当县| 尤溪县| 昌都县| 遂宁市| 浮山县| 平远县| 昌黎县| 阳春市| 万安县| 建昌县| 龙门县| 高清| 和平县| 灵丘县| 济南市| 镇巴县| 邯郸县| 太湖县| 石门县| 贵德县| 黄大仙区| 灵川县| 武冈市| 南城县| 成都市| 郴州市| 荣成市| 武隆县| 来宾市| 宜阳县| 当涂县| 拜泉县| 长春市| 罗平县| 麻城市| 赞皇县| 英山县| 固安县| 阳新县| 漠河县|