pta 7-143字符串排序
时间: 2023-08-05 07:16:23 浏览: 68
这是一道基础的字符串排序题目,可以使用STL中的sort函数来实现。
具体解法如下:
1. 首先读入字符串个数n和n个字符串,存储在一个vector<string>中。
2. 使用sort函数对vector中的字符串进行排序,排序规则为按照字符串长度从小到大排序,如果长度相等则按照字典序从小到大排序。
3. 最后按照顺序输出已排序的字符串即可。
代码示例:
```
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool cmp(string a, string b) {
if (a.length() != b.length()) {
return a.length() < b.length();
} else {
return a < b;
}
}
int main() {
int n;
cin >> n;
vector<string> strs(n);
for (int i = 0; i < n; i++) {
cin >> strs[i];
}
sort(strs.begin(), strs.end(), cmp);
for (int i = 0; i < n; i++) {
cout << strs[i] << endl;
}
return 0;
}
```
相关问题
pta字符串排序
pta字符串排序是一个字符串排序问题,输入一组字符串并按照一定规则排序输出。其中规则为:先按照字符串长度从小到大排序,长度相同的字符串按照字典序从小到大排序。具体实现可以使用 STL 中的 sort 函数,按照自定义的比较函数进行排序。下面是一段示例代码:
```c++
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
bool cmp(string a, string b) {
if (a.size() == b.size()) {
return a < b;
} else {
return a.size() < b.size();
}
}
int main() {
int n;
cin >> n;
string s[n];
for (int i = 0; i < n; i++) {
cin >> s[i];
}
sort(s, s + n, cmp);
for (int i = 0; i < n; i++) {
cout << s[i] << endl;
}
return 0;
}
```
在这段代码中,cmp 函数是自定义的比较函数,用于按照题目要求进行排序。sort 函数的第三个参数传入了自定义的比较函数 cmp。
pta字符串冒泡排序
对于给定的字符串数组 pta,冒泡排序算法可以按照以下步骤进行排序:
1. 初始化一个变量 n,表示数组的长度。
2. 使用两个嵌套循环来比较和交换数组中的元素。外部循环从 0 到 n-1,内部循环从 0 到 n-i-1。
3. 在内部循环中,比较相邻的两个元素。如果前一个元素大于后一个元素,则交换它们。
4. 继续进行下一轮的内部循环,直到完成所有元素的比较。
5. 内部循环结束后,最大的元素会被排在最后一个位置。因此,每一轮外部循环都可以减少内部循环的迭代次数。
6. 重复执行步骤 2-5,直到所有元素都按照升序排列。
下面是一个使用 Python 实现冒泡排序的示例代码:
```python
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
# 示例用法
pta = ["c", "b", "a"]
bubble_sort(pta)
print(pta) # 输出:['a', 'b', 'c']
```
请注意,上述代码只是一个示例,你可以根据自己的需要进行适当的修改和扩展。