题解
首尾互换
1 条题解
-
0
解题思路
题目要求:把原字符串的首、尾两个字符互换位置,得到一个新字符串,然后把新字符串拼接在原字符串的后面一起输出。
做法:
- 读入原字符串
s,求出它的长度n。 - 新建一个字符串
t,先复制s的内容。 - 交换首尾:
t[0] = s[n-1](把原串最后一个字符放到新串开头),t[n-1] = s[0](把原串第一个字符放到新串末尾)。中间的部分保持不变。 - 输出
s + t。
举例:原串
Hello,长度 5。新串把H和o互换得到oellH。拼接后输出HellooellH。参考代码
// 首尾互换:首尾字符互换得到新串,接在原字符串后面输出 #include <iostream> using namespace std; int main() { string s, t; // s为原串,t为首尾互换后的新串 cin >> s; // 输入原字符串 int n = s.size(); // 字符串长度 t = s; // 先复制一份 t[0] = s[n - 1]; // 新串开头放原串末尾字符 t[n - 1] = s[0]; // 新串末尾放原串开头字符 cout << s << t << endl; // 原串+新串一起输出 return 0; }复杂度分析
字符串长度不超过 50。交换首尾字符和拼接都只需要把每个字符处理一次,记字符串长度为 n,时间复杂度为 O(n),空间上额外用一个新串
t,也是 O(n)。 - 读入原字符串
- 1