网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
给定一个字符串s以及它的长度n(1≤n≤500)
返回值描述:
请返回变形后的字符串。题目保证给定的字符串均由大小写字母和空格构成。
示例1
输入:
“This is a sample”,16
返回值:
“SAMPLE A IS tHIS”
(题目来自牛客网)
用C++实现如下
class Solution {
public:
string trans(string s, int n) {
// write code here
//思路,分为三步,第一步翻转所有字符;第二步翻转所有单个字符串;第三步将大小写进行对换
//i用于元素首部,j用于元素尾部
int i,j;
i = 0;
j = n-1;
while(i<j) //第一步,将所有的字符进行翻转
{
char temp;
temp = s[i];
s[i] = s[j];
s[j] = temp;
++i;
--j;
}
i=j=0; //第二步翻转所有单个字符串,首先将i和j进行初始化到首位置
while(i<n && s[i]==' ') //如果是空格,则表示还没有开始
{
++i; //向后移动直到遇到不是空格而不满足循环
}
j=i; //i和j作为首位元素下标值开始起作用
while(j<n)
{
while(j<n && s[j]!=' ') //下标为j处的值不为空格,继续走,直到遇到空格
{
++j; //此处j跑到了空格的地方!!!
}
int k = j-1; //某个字符串的末尾下标,用k来表示,保留一个j用于记忆位置
while(i<k) //交换单个字符串
{
char temp;
temp = s[i]; //注意赋值和等于号的区别
s[i] = s[k];
s[k] = temp;
++i;
--k;
}
![img](https://img-blog.csdnimg.cn/img_convert/170c485fb155a2114ae7a8d15c42756a.png)
![img](https://img-blog.csdnimg.cn/img_convert/703a0adbf4cad7c68ad18cc43f1964c9.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618668825)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**