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

上海个人网站建立电子商务网站策划

上海个人网站建立,电子商务网站策划,网站建设费入何科目,西安做商铺的网站题目引用 反转字符串反转字符串II替换数字 1.反转字符串 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 示例 1&am…

题目引用


  1. 反转字符串
  2. 反转字符串II
  3. 替换数字

1.反转字符串


编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。

示例 1:

输入:s = [“h”,“e”,“l”,“l”,“o”]
输出:[“o”,“l”,“l”,“e”,“h”]

示例 2:

输入:s = [“H”,“a”,“n”,“n”,“a”,“h”]
输出:[“h”,“a”,“n”,“n”,“a”,“H”]

相信不少同学看到题目之后就已经想到了C++的库函数reverse了,用这个做当然可以,毕竟只要做出来,怎么快怎么来。但是我们还是来看看怎么不用库函数解决这道问题吧。
首先定义一个头指针i,尾指针j,不断循环交换i和j位置的值,并且缩小区间,当i≮ j时循环结束,字符串也被反转了。
来看代码

void reverseString(vector<char>& s) {for(int i=0,j=s.size()-1;i<j;i++,j--){swap(s[i],s[j]);}}

短短的也很可爱哦~

2.反转字符串II


给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。
如果剩余字符少于 k 个,则将剩余字符全部反转。
如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。

示例 1:

输入:s = “abcdefg”, k = 2
输出:“bacdfeg”

示例 2:

输入:s = “abcd”, k = 2
输出:“bacd”

这里的题目写的比较生硬,容易让人看不懂。我们自己来分析一下吧,我们需要根据题目给出的k来寻找反转的区间,我们每次走2* k个位置,然后判断剩下的位置够不够k个,所以我们是以后面元素的个数来判断对后面n-i*(2*k)个位置是什么样的操作。
也就是说我们每次走2* k个位置,如果后面的元素个数>k,那么我们就反转后面k个,如果不够k个就全部反转。
那么就来看代码吧:

string reverseStr(string s, int k) {for(int i=0;i<s.size();i+=(2*k)){if((i+k)<s.size()){reverse(s.begin()+i,s.begin()+i+k);}else{reverse(s.begin()+i,s.end());}}return s;}

3.替换数字


题目描述
给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。 例如,对于输入字符串 “a1b2c3”,函数应该将其转换为 “anumberbnumbercnumber”。

输入描述

输入一个字符串 s,s 仅包含小写字母和数字字符。

输出描述

打印一个新的字符串,其中每个数字字符都被替换为了number

输入示例

a1b2c3

输出示例

anumberbnumbercnumber

这道题目就稍微有一点难度了,不仅因为是IO机制,而且需要我们对字符串这个类有一定的理解。C++里面的string是可以使用resize修改空间的,我们先用sOldIndex记录一下现在字符串的最后一位,遍历一遍字符串,用count记录字符串中数字的个数,再利用resize将空间修改为5*count+s.size(),用sNewIndex指针标记现在字符串的最后一位,然后从后向前遍历,sOldIndex先走,当遇到非数字时就将其赋值给sNewIndex位置,并让sNewIndex--,当遇到数字时,sNewIndex--并把number倒序放入字符串中,当sNewIndex<0时循环结束。
来看代码:

#include <iostream>
using namespace std;
int main() {string s;while (cin >> s) {int sOldIndex = s.size() - 1;int count = 0; // 统计数字的个数for (int i = 0; i < s.size(); i++) {if (s[i] >= '0' && s[i] <= '9') {count++;}}// 扩充字符串s的大小,也就是将每个数字替换成"number"之后的大小s.resize(s.size() + count * 5);int sNewIndex = s.size() - 1;// 从后往前将数字替换为"number"while (sOldIndex >= 0) {if (s[sOldIndex] >= '0' && s[sOldIndex] <= '9') {s[sNewIndex--] = 'r';s[sNewIndex--] = 'e';s[sNewIndex--] = 'b';s[sNewIndex--] = 'm';s[sNewIndex--] = 'u';s[sNewIndex--] = 'n';} else {s[sNewIndex--] = s[sOldIndex];}sOldIndex--;}cout << s << endl;       }
}

总结


今天的题目呢难度并不大,主要是熟悉字符串的各种操作,那么今天就到这里吧,大家天天开心~

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

相关文章:

  • 用什么程序做网站最好优化怎么把自己做的网站发到网上通过网址来查看
  • 网站顶部下拉广告代码青岛网站设计微动力
  • 台州建设信息网站王烨轩
  • 福州门户网站链接提交工具
  • 零遁nas做网站百图汇免费素材图库
  • 如何建设百度网站网站建设公司天成
  • 宜都网站建设查公司法人信息怎么查
  • 北京网站建设方案外包公司建网站怎么做
  • 在线做生存曲线的网站有哪些梧州网站推广
  • 教你如何建设网站阿里去lnmp快速安装wordpress
  • 太仓市质监站网址上海公司注销流程及费用
  • 帮别人做网站怎么备案炎宇网络科技邯郸
  • 附近的网站建设公司本人有大批量手工活寻加工户
  • 哪些网站用天平做logo做网站服务器哪种好
  • 网站推广优化外包公司外贸客户开发的渠道有哪些
  • 一个网站的运营成本织梦网站怎么做投票
  • 贵州省网站集约化建设字体设计网
  • 网站做三屏合一云南网络推广
  • 学生空间建设网站企业网站设计制作
  • 网站上的漂浮怎么做荥阳市网站建设
  • 网站的图书资源建设网页设计学什么软件
  • 教学单位 网站建设上海旧房翻新装修哪家好
  • 做搬家服务网站问卷调查的目的网络营销运营公司
  • 网站建设表单教案优质的做pc端网站
  • 网站标签布局qq wordpress登陆地址
  • 建什么网站做cpa瓜果类网站建设方案
  • 网站建设有几大板块文章类网站源码
  • 新公司网站设计注意事项公司网站建设申请单
  • 财经那个网站做的好中国能源建设集团有限公司子公司
  • html课设做网站怎么使用电脑是做网站