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

做好网站建设工作网络运维面试题

做好网站建设工作,网络运维面试题,家具网站模版,简单个人网站制作教程最长的回文子串 题目描述 给定一个字符串 s#xff0c;找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 解题思路 可以跟无重复的最长子串一样#xff0c;用一个滑动窗口#xff0c;只不过这个窗口的右边界往右#xff0c;左边界每回要从右边界的下标往左…最长的回文子串 题目描述 给定一个字符串 s找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 解题思路 可以跟无重复的最长子串一样用一个滑动窗口只不过这个窗口的右边界往右左边界每回要从右边界的下标往左。 还需要一个二维数组记录当前窗口中记录的字符串是不是回文串 再需要一个变量记录回文串的长度。比较出最大的回文串 例如baccab 首先定义右边界right左边界left right从右边界的下标开始如何判断当前窗口是否是回文串第一步判断两端值是否相等str[i] str[j] ,第二步判断窗口去除两端外里面的字符串是不是回文串s[i1][j-1]如果长度小于3 right-left2并且两端相同那么去除两端必定为回文串 。经过上述判断则可以说明当前区间就为回文串所以标记i~j区间中array[i][j] true; 并记录回文串并计算长度如果该区间长度大于之前记录的回文串的长度再记录right-leftlength。res susbtr(left,right-left1); 从左边界开始截取长度为right - left 1的长度。length right-left;对于baccab来说首先 str[right] b ,str[left] str[right] b,两端相同又因为长度小于3所以b是回文字符串array[i][j] true; 此时长度大于length记录然后right来到a的位置left也跟着来到a的位置开始往左走走到b判断两端不相同直接下一个循环right再来到c的位置往后依次类推… 代码实现 class Solution { public:string longestPalindrome(string s) {int n s.size();//记录字符串是否为回文字符串vectorvectorbool array (n,vectorbool(n));string res ;//记录结果返回int length 0; //记录长度比较出最长的回文子串if(n 0)return s;if(n 1)return s;//如果是两个字符则返回第一个字符res s[0]; //外层循环右边界for(int right 0;rightn;right){//内层循环左边界for(int left right;left0;--left){//判断是否为回文字串if(s[left] s[right] //两头相等 (right-left2 //长度小于等于3并且两头相等比为回文串|| array[left1][right-1]) //去掉两头中间也是回文串才是回文串){//标记left~right该区间为回文串array[left][right] true;if(right-leftlength) //如果回文串长度大于之前记录的长度则记录该串{res s.substr(left,right-left1);length right-left; //记录新长度} }}}return res;} };Z字形变换 题目描述 将一个给定字符串根据给定的行数以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时排列如下 解题思路 一共四行numbers 4 找规律 第0行0-6-12 间隔为6第1行1-5-7-11-13 间隔为4-2-4-2 奇数行 step-2*1(行)-2*1(行)-step-2*1(行)-2*1(行)第2行2-4-8-10-14间隔为2-4-2-4 偶数行 step-2*2(行)-2*2(行)-step-2*2(行)-2*2(行)第3行3-9-15 间隔为6 第一行和和最后一行为step 2*numbers-2 中间是中间层的下标间距总是step-2*行数2*行数交替 代码实现 class Solution { public:string convert(string s, int numRows) {if(numRows 1) //如果只有一行数据直接返回return s;int step numRows*2 - 2;string res ;int index 0; //记录每行元素的下标int add 0; //中间行间隔for(int i 0; inumRows;i){index i; //标记行数add 2*i ; //出去第0行和numRows-1行中间行的间隔while(indexs.size()) //元素下标大于总个数要换行{ress[index];add step - add ; //变换间隔index (i 0 || i numRows-1) ? step : add; //每行每个元素的下标都在变}}return res;} };
http://www.sadfv.cn/news/401339/

相关文章:

  • 乾县交通建设网站北京注册公司多少钱
  • 做网站的主要任务网店培训机构
  • 站长之家收录查询如何在网站投放广告
  • 网站开发的工作青羊区网站建设公司
  • 简单网站制作代码福田蒙派克g5
  • 郑州网站定制企业级网站开发
  • 国外网站建设模板网站备案期间可以访问吗
  • 青岛城乡建设部网站首页c 手机网站开发工具
  • jsp做的网站wordpress 定时发送
  • 物业管理 网站开发室内设计怎么网上接单
  • 遵义网站制作和推广团购网站开发语言
  • 有个网站叫设计什么广州公司注册代理中介
  • 商城网站建设报价优秀品牌策划方案
  • 网站建设基本步骤包括哪些邢台网站网站建设
  • 做原创短视频网站排版设计模板
  • 底价网站建设wordpress 存储位置
  • 网站页面设计风格中国建设部网站-玻璃幕墙
  • 电商网站开发平台浏览器wordpress电影类模板
  • 如何再网站上做免费广告词网站技术支持什么意思
  • 网站建设实战李静鹤壁网站建设费用
  • 做弹幕网站有哪些坂田网站建设多少钱
  • 网站升级通知自动跳跃访问 wordpress
  • 昆明网站制作方案定制做封面的软件ps下载网站
  • 网站搭建费用价格表动画网页制作网站
  • 地产广告设计网站开发php网站建设
  • 北京建设教育网站什么网站可以做棋谱
  • 手机传奇网站上蔡县住房和城乡建设局网站
  • 烟台城乡建设学校官方网站程序员wordpress主题
  • 注册个免费网站网站建设配图
  • 水泵网站站群建设做外贸需要什么网站