当前位置: 首页 > news >正文

上杭网站制作网站建设学什么语音

上杭网站制作,网站建设学什么语音,长春网站建设于健,广东广州自己建网站公司前言 经过前期的数据结构和算法学习,开始以OD机考题作为练习题,继续加强下熟练程度。有需要的可以同步练习下。 描述 Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA&…

前言

经过前期的数据结构和算法学习,开始以OD机考题作为练习题,继续加强下熟练程度。有需要的可以同步练习下。

描述

Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化 ABBA->12ABBA,ABA->ABAKK,123321->51233214 。因为截获的串太长了,而且存在多种可能的情况(abaaab可看作是aba,或baaab的加密形式),Cathcer的工作量实在是太大了,他只能向电脑高手求助,你能帮Catcher找出最长的有效密码串吗?

数据范围:字符串长度满足 1≤𝑛≤2500 1≤n≤2500 

输入描述:

输入一个字符串(字符串的长度不超过2500)

输出描述:

返回有效密码串的最大长度

示例1

输入:

12HHHHA

输出:

4

实现原理

根据题干分析,该题是最长回文子串的判断。

1.采用滑动窗口的形式逐步判断滑动窗口内的字符串是否符合对应密码的要求。具体实现见如下。

实现代码

import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别String input = in.nextLine();int left = 0;int right = input.length();int res=0;//System.out.println(input.length());for (int i = 0; i < input.length(); i++) {for(int j=input.length()-1;j>=i+1;j--){   int oneStepRes=check(input.substring(i,j+1));if(oneStepRes>0){res=Math.max(res,oneStepRes);break;}       }  }System.out.println(res);}public static int check(String str) {//System.out.println(str);int left = 0;int right = str.length() - 1;boolean flag=true;;while(left<right){if(str.charAt(left) == str.charAt(right)){//System.out.println("left:"+str.charAt(left));left++;right--;continue;}else{flag=false;break;}}if(flag){//System.out.println(str.length());return str.length();}return 0;}}

动态规划法

从上述的算法来看,存在较多的重复判断。大大增加算法执行时间。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException {Scanner in = new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别String input = in.nextLine();int res=validLen(input);System.out.println(res);in.close();}public static int validLen(String s) {int len = s.length();// 状态:对比的两个字符索引起始和终止索引位置// 定义: 字符串s的i到j字符组成的子串是否为回文子串boolean[][] dp = new boolean[len][len];int res = 0;// base casefor(int i = 0; i < len - 1; i++) {dp[i][i] = true;}//dp数组要从小开始填充,r和l也从最小区间开始for(int r = 1; r < len; r++) {for(int l = 0; l < r; l++) {// 状态转移:如果左右两字符相等,同时[l+1...r-1]范围内的字符是回文子串// 则 [l...r] 也是回文子串if(s.charAt(l) == s.charAt(r) && (r-l <= 2 || dp[l+1][r-1])) {dp[l][r] = true;// 不断更新最大长度res = Math.max(res, r - l + 1);} }}return res;}
}

中心扩散法

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;}
}

http://www.yayakq.cn/news/184003/

相关文章:

  • 领优惠卷的网站怎么做囯家信用信息公示系统
  • 焦作做网站推广爱前端wordpress5.0.3主题
  • 网站建设合同技术开发合同合肥建设网站哪个好
  • 宠物网站设计与制作灯饰 技术支持 东莞网站建设
  • 网站怎么做直播间怎么做微信小程序
  • 网站源码在线下载比较出名的网站域名
  • 营销类网站建设需要注意的问题网站公众号信息化建设工作计划
  • 网站收录没了承德网站建设费用
  • 做包装一般看什么网站安徽省住房和城乡建设厅网站首页
  • 网站建设服务哪家好 价格多少钱物联网是干什么的用的
  • 给自己做的网站换首页wordpress域名变回80
  • wordpress建站课程自己可以学着做网站吗
  • 垂直电子商务网站建设网站非法收录用户信息
  • 网页设计作业个人网站上线一款app需要多少钱
  • 做网站wamp和xampwordpress 开发 pdf
  • 网站功能介绍是什么自己电脑怎么做网页
  • 班级设计网站建设如何做网站建设团队建设
  • 昆山做网站哪家好失物招领网站开发项目需求分析
  • 营销型网站建设策划书怎么写做旅游网站的设计感想
  • 网站导航栏代码加入网站帮忙做网站
  • 网站 域名解析错误手机app制作多少钱
  • 淄博周村专业网站建设公司怎样看一个网站是谁做的
  • 织梦做网站需要钱吗沧州快速关键词排名优化
  • 好看英文网站6网站建设做网站
  • 网站建设如何站内搜索我在学校志愿队做网站的经历
  • 购物网站建设得背景电子商务网站的建设的原理
  • 网站维护兼职wordpress is_admin('edit.php')
  • 怎么清理网站后门文件做一款小说网站
  • 长春集团网站建设百度网页设计教程
  • 北京网站 百度快照wordpress主题 儿童