首页 > 其他分享 >Day8 翻转字符串里面的单词,右旋字符串

Day8 翻转字符串里面的单词,右旋字符串

时间:2024-07-01 13:30:30浏览次数:19  
标签:begin slow string Day8 int fast 右旋 字符串 include

翻转字符串里面的单词

我觉得这道题是一道可以很好的帮助我们的理解再次关于快慢双指针,希望我们能够经过我们多次的锻炼来提高自己的水平!

题目

在知道题里面,我们要做的不仅仅是单纯的翻转字符我们还需要将这个空格整掉,但是在每一个单词与单词之间我们还要有一个空格,所以我们的第一步是先将这个空格全部删掉,然后利用reverse,然后再将每一个单词内部反转。

#include<iostream>
#include<algorithm>
using namespace std;
#include<string>
string zhauan(string& s,int start,int end)
{
	for (int i =start,j=end; i < j; i++, j--)//这个地方千万别写错了,否则会影响下面的
	{
		swap(s[i], s[j]);
	}
	return s;
}
string shankong(string &s)
{
	int slow = 0;
	for (int fast = 0; fast < s.size(); fast++)
	{
		if (s[fast] != ' ')
		{
			if (slow != 0)s[slow++] = ' ';
			while (fast < s.size() && s[fast] != ' ')
			{
				s[slow] = s[fast];
				slow++;
				fast++;
			}
		}
	}
	s.resize(slow);//这个地方的语法重点看一眼
	return s;
}
string  fanzhuan(string &s)
{
	shankong(s);
	//s.reserve(s.begin(),s.end());
	zhauan(s,0,s.size()-1);
	//cout << s << endl;
	int start = 0;
	for (int i = 0; i < s.size(); i++)
	{
		if (s[i] != ' '||i==s.size()-1)//这个地方的判断条件别少了
		{
			zhauan(s, start, i-1);
			start = i + 1;
		}
	}
	return s;
}
int main()
{
	string s;
	getline(cin, s);
	cout<<fanzhuan(s);
}

右旋字符串

 

#include<iostream>
using namespace std;
#include<string>
#include<algorithm>
int main()
{
	int n;
	cin >> n;
	string s;
	cin >> s;
	reverse(s.begin(), s.end());
	reverse(s.begin(), s.begin() + n );
	reverse(s.begin() + n, s.end());
	cout << s;

}

标签:begin,slow,string,Day8,int,fast,右旋,字符串,include
From: https://blog.csdn.net/lxy2966201752/article/details/140084840

相关文章

  • Day7 反转字符串,反转字符串II,替换数字
    反转字符串 #include<iostream>usingnamespacestd;#include<string>voidfanzhuan(string&s){ for(inti=0,j=s.size()-1;i<s.size()/2;i++,j--) { swap(s[i],s[j]); } cout<<s;}intmain(){ strings; cin>>s; ......
  • Python-字符串
    字符串1.字符串字面量单引号:'spa"m'双引号:"spa'm"三引号:'''...spam...''',"""...spam..."""转义序列:"s\tp\na\0m"原始字符串:r"C:\new\test.spm"字节字面量:b'spx01a......
  • CF631D Messenger (kmp + 字符串处理)
    CF631DMessengerkmp+字符串处理思路简单,写起来细节比较多首先要合并同类项,然后再考虑什么时候\(s=t\)。如果合并后\(t\)有一种或两种字符,那么都可以直接做;大于两种,我们发现匹配的条件为:中间部分完全相同,首尾字符相同并且\(s\)首尾字符的数量要大于\(t\)。中间部分完......
  • 代码随想录算法训练营第十天|232.用栈实现队列、225.用队列实现栈、20.有效的括号、 1
    今天学习了栈与队列这两个数据结构,栈是一个先进后出的结构,在C++中用stack进行表示,有push、pop、top、empty这些属性;队列是一个先进后出的结构,有push、pop、front、back。empty这些属性。在底层实现上,他们都是用deque双向队列进行实现的。232.用栈实现队列题目链接:232.用栈......
  • 代码随想录算法训练营第九天|151.翻转字符串里的单词,卡码网:55.右旋转字符串
    151.翻转字符串里的单词题目链接:151.反转字符串中的单词-力扣(LeetCode)题目要求是给定一个字符串,要求把里面的单词进行倒序输出,并且要删除里面多余的空格。我的第一种做法是把里面的字符串提取出来,然后倒序放入一个新的字符串中,这样空间复杂度会比较高,也AC了,但肯定不是最......
  • 关于之前写的动态字符串的绑定再说一点
    1、我今天发现一个奇怪的事情我之前写的关于动态字符串的绑定https://www.cnblogs.com/guchen33/p/18060276<TextBlockWidth="200"Height="30"FontSize="20"Text="{BindingContent,StringFormat={}{0}!}"/> pu......
  • java将整数转换为字符串
    1.toString适用于int类型publicclasstest{ publicstaticvoidmain(String[]args){ inti=777; Stringstr=Integer.toString(i); System.out.println(str); }}2.valueOf 适用于int、double、boolean和Object类型publicclasstest{ public......
  • C语言教程-11-字符串
    title:C语言教程-11-字符串tags:[C]categories:C语言教程description:最重要的交互信息-字符串及其存储,操作提要:本章要讲解字符串的内容.同时会使用到前面基本输入输出一章中讲解的各种输入输出函数和数组,若不了解请自行复习.注意:本章需要的前置知识为:1.......
  • 《最新出炉》系列入门篇-Python+Playwright自动化测试-52- 字符串操作 - 下篇
    1.简介在日常的自动化测试工作中进行断言的时候,我们可能经常遇到的场景。从一个字符串中找出一组数字或者其中的某些关键字,而不是将这一串字符串作为结果进行断言。这个时候就需要我们对字符串进行操作,宏哥这里介绍两种方法:正则和字符串切片函数split()。2.测试场景宏哥在这里......
  • shell字符串截取
    假设有变量var=http://www.aaa.com/123.htm.1.#号截取,删除左边字符,保留右边字符。[root@ansible01~]#var=http://www.aaa.com/123.htm.[root@ansible01~]#echo${var#*//}www.aaa.com/123.htm. 其中var是变量名,#号是运算符,*//表示从左边开始删除第一个//......