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

建设工程安全监督备案网站动画专业

建设工程安全监督备案网站,动画专业,百度推广后台登录入口官网,html设计网页作业代码文章目录 一、旋转字符串思路1思路2 二、亲密字符串思路 总结 一、旋转字符串 点我直达终点~ 思路1 前提#xff1a;如果s串和goal串长度不等#xff0c;则goal串不可能是s串旋转得来#xff0c;直接返回false#xff1b; 通过观察#xff0c;可以发现每旋转一次#… 文章目录 一、旋转字符串思路1思路2 二、亲密字符串思路 总结 一、旋转字符串 点我直达终点~ 思路1 前提如果s串和goal串长度不等则goal串不可能是s串旋转得来直接返回false 通过观察可以发现每旋转一次第一个字符就会出现在最后一个字符的位置处其余字符均往前挪动一个位置。 所以我们首先将第一个字符保存然后挪动其他字符再将保存的字符放到最后。 其次判断s和goal是否相等如果不等则继续按照上述方式旋转 注意:如果旋转s的长度次后与goal仍然不想等返回false 代码: class Solution { public:bool rotateString(string s, string goal) {if(s.size()!goal.size())return false;for(int j 0 ; j s.size();j){char ch s[0];//旋转一遍for(int i 1;i s.size();i){s[i-1] s[i];}s[s.size()-1] ch;if(s goal){return true;}}//如果旋转完s.size()遍还不是true那就falsereturn false;} };时间复杂度O(N^2) 空间复杂度O(1)(原地旋转) 思路2 前提如果s串和goal串长度不等则goal串不可能是s串旋转得来直接返回false 一个巧妙的解法运用如果goal串由s串旋转得来那么goal串一定是ss串的子串。 只需要判断goal字符串是否为ss串的子串即可。 class Solution { public:bool rotateString(string s, string goal){string ss ss;if(s.size() goal.size() ss.find(goal) ! string::npos)return true;return false;} };时间复杂度O(N) 空间复杂度O(N) 二、亲密字符串 点我直达终点~ 思路 前提如果s串和goal串长度不等则goal串不可能是s串旋转得来直接返回false 对于这道题首先遍历一遍s串一边遍历一边与goal字符串进行对比如果对应下标的goal串的字符和s串的对应下标的字符不相等则记录不等的字符和下标。s串和goal串一定只有两个不相等的字符 找到后如果pos1下标和pos2下标相同说明s串和goal串一定相等。 然而这里存在两种情况如题目描述 情况1ab和ab 情况2aa和aa 此时我们不需要分情况讨论只需要找到s字符串的任意一个字符如果出现两次及以上则说明交换s字符串的任意两个相同的字符一定与goal字符串相等。 比如: aabab 和aababs字符串中的a出现了三次b出现了两次 那么无论怎么交换其中的a或者bs字符串始终和goal字符串相等。 如果字符串pos1下标和pos2下标不同则交换对应的pos1和pos2的字符再判断是否与goal串相等即可。 详细请看代码 class Solution { public:bool buddyStrings(string s, string goal) { //1.长度不等必然不是亲密字符串if(s.size()!goal.size())return false;char arr[2];//找第一个不相同的字符,并记录下标int i 0;int pos1 0,pos2 0;for(; is.size();i){if(s[i]!goal[i]){arr[0] s[i];pos1 i;break;}}//找第二个不相同的字符for(i1; is.size();i){if(s[i]!goal[i]){arr[1] s[i];pos2 i;break;}}// 如果pos1 pos2,说明s和goal是完全相等的两个串//此时有两种情况如果s中有两个位置交换后还是原来的s此时s和goal相等。//但不管是哪种情况我们都只需要找出任意一个字符出现2次及以上就可以知道是亲密字符串if(pos1 pos2){vectorint count(26);for(int i 0;is.size();i){count[s[i] - a];if(count[s[i] - a]2)return true;}return false;}//此种情况不是s串和goal串相等那么正常交换两个字符的位置然后判断是否与goal相等即可。else{swap(s[pos1],s[pos2]);if(s goal)return true;return false;}} };时间复杂度O(N) 空间复杂度O(1) 只消耗常量个空间即26 总结 通过这两道题学习到了旋转字符串的一般规律是转化为找子串的问题 而亲密字符串的本质就是分情况讨论 情况1如果s!goal 情况2如果sgoal 的分别处理方式。
http://www.hkea.cn/news/14543963/

相关文章:

  • 网站建设好发信息网搜索引擎优化的核心是
  • 网站开发需要的技术人才牧和邻宠物网站建设
  • 行业seo网站优化方案界面设计是做什么的
  • 用asp.net做的网站有哪些设计制作小车一教学设计
  • 建设网站宣传页巴中市建设局新网站
  • 站长工具樱花合肥生态丽景网站建设
  • 网站建设玖首选金手指大连企业网站建设公司
  • 百度推广网站平台苏州网站建设哪家公司好
  • 电子商务网站建设方面的论文西安市网站建设公司
  • 化工网站建站模板网络公司代做的网站注意事项
  • 网站建设中企动力公司企业建站官网运营
  • 网站架设地址手机电脑同步编辑wordpress
  • 网站建设 长安镇网站建设协议 合同
  • 网站开发都有哪些郑州seo技术服务
  • 饮食中心网站建设方案wordpress自适应主题制作
  • 网站建设优化文章seo搜索引擎优化方式
  • 制作网站需要什么软件温岭 网站建设
  • 兼职做网站的费用网络公司专业做网站
  • 肥城网站建设费用云南省建设厅建管处网站
  • 徐州市建设银行网站中山教育平台网站建设
  • 惠州市建网站公司国内最新新闻摘抄2023年
  • 郑州企业网站优化建设工业网站首页
  • php网站开发教程图片一键lnmp搭建wordpress
  • 设计工作室图片连云港网站优化方案
  • 做音箱木工网站室内设计奖项有哪些
  • 淘客网站 源码免费开源cms内容管理系统
  • 网站买东西第三方怎么做个人做外贸网站平台
  • 建造电商网站义乌创博网络科技有限公司
  • 百度搜索引擎录入网站怎么做足球直播网站
  • 网站建设项目策划丁香人才网官方网站