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

wordpress站群教程小猫济南网站建设公司

wordpress站群教程,小猫济南网站建设公司,青浦php网站开发培训,网站开发中什么是站点目录 1.反转字符串 2.反转字符串II 3.替换数字 4.翻转字符串里面的单词 5.右旋左旋字符串 1.反转字符串 题目描述#xff1a; 编写一个函数#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外…目录 1.反转字符串 2.反转字符串II 3.替换数字 4.翻转字符串里面的单词 5.右旋左旋字符串 1.反转字符串 题目描述 编写一个函数其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间你必须原地修改输入数组、使用 O(1)  的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 1  输入[h,e,l,l,o]  输出[o,l,l,e,h] 示例 2  输入[H,a,n,n,a,h]  输出[h,a,n,n,a,H] 思路 使用双指针法 对于字符串我们定义两个指针也可以说是索引下标一个从字符串前面一个从字符串后面两个指针同时向中间移动并交换元素。 注意 注意i的限定范围 代码 class Solution { public:void reverseString(vectorchar s) {int start 0;int end s.size() - 1;for (int i start, j end; i s.size()/2; i, j--) {swap(s[i], s[j]);}} }; 2.反转字符串II 题目描述 给定一个字符串 s 和一个整数 k从字符串开头算起, 每计数至 2k 个字符就反转这 2k 个字符中的前 k 个字符。 如果剩余字符少于 k 个则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个则反转前 k 个字符其余字符保持原样。 示例: 输入: s abcdefg, k 2  输出: bacdfeg 思路 分成两部分进行处理 1.每计数到2k个字符或者剩余字符小于2k但是大于等于k个就反转前k个字符 2.剩余字符少于k个反转剩余字符 注意 reverse接受的是迭代器参数表示要反转的范围接受的参数是字符串的起始位置和结束位置 代码 /*库函数reverse的版本*/ class Solution { public:/*reverse可以写为如下*/void reverse(string s, int start, int end) {//接收数组s起始元素和终止元素for (int i start, j end; i j; i, j--) {swap[s[i], s[j]];}}string reverseStr(string s, int k) {for (int i 0; i s.size(); i (2 * k)) {//1.每隔2k个字符的前k个字符进行反转//2.剩余字符小于2k但是大于或者等于k个则反转前面k个字符/*使用自定义的reverse函数的情况下*/if (i k s.size()) {reverse(s, i, i k - 1);continue;}else {//剩余字符少于k个则将剩余字符全部反转reverse(s, i, s.size() - 1);}/*使用系统自带的库函数的情况下*/if(iks.size()){reverse(s.begin()i,s.begin()ik);//reverse函数接受两个迭代器参数表示要反转的范围接受的参数是字符串的起始位置和结束位置}else {reverse(s.begin()i,s.end());}}return s;} }; 3.替换数字 题目描述 给定一个字符串 s它包含小写字母和数字字符请编写一个函数将字符串中的字母字符保持不变而将每个数字字符替换为number。 例如对于输入字符串 a1b2c3函数应该将其转换为 anumberbnumbercnumber。 对于输入字符串 a5b函数应该将其转换为 anumberb 输入一个字符串 s,s 仅包含小写字母和数字字符。 输出打印一个新的字符串其中每个数字字符都被替换为了number 样例输入a1b2c3 样例输出anumberbnumbercnumber 数据范围1 s.length 10000。 思路 使用双指针法 i指向新长度的末尾j指向旧长度的末尾 从后往前遍历 先扩充数组 然后再倒序扩充(oldindex,newindex) 注意 while是关键循环因为需要一直执行 代码 int main() {string s;while (cin s) {int count 0;int oldindex s.size() - 1;for (int i 0; i s.size(); i) {if (s[i] 0 s[i] 9) {count;}}s.resize(s.size() count * 5);int newindex s.size() - 1;//关键循环不断寻找符合条件的数字while (oldindex 0) {if (s[oldindex] 0 s[oldindex] 9) {s[newindex--] r;s[newindex--] e;s[newindex--] b;s[newindex--] m;s[newindex--] u;s[newindex--] n;}//遇到不符合的情况的处理else {//此处如果写为s[newindex--] s[oldindex--]//会报错因为会超出oldindex范围s[newindex--] s[oldindex];}oldindex--;}cout s endl;} } 4.翻转字符串里面的单词 题目描述 给定一个字符串逐个翻转字符串中的每个单词。 示例 1  输入: the sky is blue  输出: blue is sky the 示例 2  输入:   hello world!   输出: world! hello  解释: 输入字符串可以在前面或者后面包含多余的空格但是反转后的字符不能包括。 示例 3  输入: a good  example  输出: example good a  解释: 如果两个单词间有多余的空格将反转后单词间的空格减少到只含一个。 思路 - 移除多余空格 - 将整个字符串反转 - 将每个单词反转 注意 难度较高条理需要清晰先去除多余的空然后再进行翻转处理 代码 class Solution {void Reverse(string s,int start,int end) {for (int i start, j end; i j;i,j--) {swap(s[i],s[j]);}}void removeextra(string s) {int slow 0;for (int i 0; i s.size(); i) {if (s[i] ! ) {if (slow ! 0) s[slow] ;while (i s.size() s[i] ! ) {s[slow] s[i];}}}s.resize(slow);}string fanzhuan(string s) {int start 0;int end s.size()-1;removeextra(s);Reverse(s, start,end);for (int i 0; i s.size(); i) {if (s[i] || i s.size()) {Reverse(s, start, i-1);start i 1;}}return s;} }; 5.右旋左旋字符串 题目描述 字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k请编写一个函数将字符串中的后面 k 个字符移到字符串的前面实现字符串的右旋转操作。 例如对于输入字符串 abcdefg 和整数 2函数应该将其转换为 fgabcde。 输入输入共包含两行第一行为一个正整数 k代表右旋转的位数。第二行为字符串 s代表需要旋转的字符串。 输出输出共一行为进行了右旋转操作后的字符串。 思路 先整体翻转 然后前k个翻转 然后后面的翻转 注意 注意翻转的顺序 reverse接受的是迭代器的参数要格外注意 代码 #includeiostream #includealgorithm using namespace std; int main() {int n;string s;cin n;cin s;int len s.size(); //获取长度//错误做法//reverse是标准库算法需要传递迭代器参数//接受两个参数//first表示要翻转范围的起始位置包括 first 指向的元素。//last表示要翻转范围的结束位置不包括 last 指向的元素即[first, last)/*reverse(start, end);reverse(start, start k - 1);reverse(start k, end);*/reverse(s.begin(), s.end()); // 整体反转reverse(s.begin(), s.begin() n); // 先反转前一段长度nreverse(s.begin() n, s.end()); // 再反转后一段cout s endl;} 左旋操作与此类似 int main() {string s;int n;cin s;cout please input n;cin n;reverse(s.begin(), s.begin() n);reverse(s.begin() n, s.end());reverse(s.begin(), s.end());cout s s endl; }
http://www.hkea.cn/news/14419628/

相关文章:

  • 住房和城乡建设部网站安全分会phpmysql网站开发项目式教程
  • 厦门建设企业网站建设中国建设银行黄冈分行网站
  • 大庆做网站公司wordpress 安装第二步
  • 网站开发人员趋势济宁亿峰科技做网站一年多少费用
  • 做注册任务网站源码许昌北京网站建设
  • 前端手机网站一个网站开发流程
  • 朝阳网站关键词优化织梦网站查看原有文章
  • 网站建设师要求制作网站价格
  • 深圳网站设计公司哪家专业wordpress 搜索出图片
  • 终身免费网站建设阿里云怎么创建网站
  • 网站建设沛宣如何优化网页加载速度
  • 淘宝网商务网站建设目的织梦可以放两个网站
  • 青岛高创网站建设福建永安建设局网站
  • 网站策划的重要性网站自定义301
  • 外贸网站seo推广教程网络推广有什么技巧没
  • 新的网站怎么推广广告设计公司有什么岗位
  • 信宜网站开发公司安卓做网站
  • 东阿做网站专业网站设计制合肥作
  • 百度账号注册平台长沙网站排名优化报价
  • 专业的丹阳网站建设中企邮箱登录入口
  • 王璐 牟平 网站建设网络营销总结及体会
  • 上线了如何制作网站网站建设和客户面谈
  • 南康网站制作网站建设验收单
  • 公司商业网站怎么做兴华建设集团有限公司网站
  • 手机网站自动适配网站建设首选公司
  • 深圳福田高端网站建设域名服务商所属区域
  • 交易平台网站建设wordpress登记打印
  • 网站建设 杭州市萧山区骏域网站建设专家东莞
  • 网站的注册和登录界面怎么做分销网站制作条件
  • 编程网站有哪些wordpress网易音乐