基础课 |位置互换"/>
卡码网语言基础课 |位置互换
卡码网语言基础课 |位置互换
- 前言
- 交换变量
- 代码实现
前言
奇偶位置互换是指字符串的奇数位和偶数位相互交换位置,想要完成字符串交换,需要完成以下步骤:
- 遍历字符串
- 第1位和第2位交换
- 第3位和第4位交换
- …
- 第 i 位和第 i + 1位交换
交换变量
为了让两个字符相互交换位置,这里需要引入第三个位置:
第一个字符 i
所在位置 a
,第二个字符 j
所在位置 b
,以及空位置 c
- 步骤一,将字符
i
交换到空位置c
,此时 位置a
为空,位置b
为字符j
,位置c
为字符i
- 步骤二,将字符
j
交换到位置a
,此时位置a
为字符j
,位置b
为空,位置c
为字符i
- 步骤三,将字符
i
交换到位置b
,此时位置a
为字符j
,位置b
为i
,位置c
为空
这样就完成了位置交换。
具体到代码:
void swap(char &a, char &b) {char temp = a; // 步骤一a = b; // 步骤二b = temp; // 步骤三
}
代码实现
首先完成代码的基本结构:
#include <iostream>
#include<string>
using namespace std;int main() {int n;cin >> n;string s;while (n--) {cin >> s;}
}
定义swap
函数:
void swap(char &a, char &b) {char temp = a;a = b;b = temp;
}
遍历字符串,并将当前字符和下一位字符交换,当完成第一位和第二位的交换后,我们应该将迭代步数控制为2,执行第三位和第四位的交换:
for (int i = 0; i < s.size() - 1; i += 2) {swap(s[i], s[i + 1]);
}
最后将交换完毕的字符串输出即可。
整体代码如下:
#include <iostream>
#include <string>
using namespace std;void swap(char &a, char &b) {char temp = a;a = b;b = temp;
}int main() {int n;cin >> n;string s;while (n--) {cin >> s;for (int i = 0; i < s.size() - 1; i += 2) {swap(s[i], s[i + 1]);}cout << s << endl;}
}
更多推荐
卡码网语言基础课 |位置互换
发布评论