写一个函数对字符串数组进行排序,排序的规则是根据每个字符串中……

这是腾讯当初的一道笔试题:

写一个函数对字符串数组进行排序,排序的规则是根据每个字符串中重复出现次数最多的字符出现的次数,在次数相同的情况下根据出现次数第二多的字符排序:

比如:

“abcaba”中重复出现次数最多的是a,次数是3,第二多的是字符b,次数是2,第三是c,次数是1,因此mysort(["abcaba","asdfasdf","asdfasdfasdf"]的结果是

["asdfasdfasdf","abcaba","asdfasdf"])


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您好,以下是用 C++ 编一个输入字符串数组函数示例: ```cpp #include <iostream> #include <string> using namespace std; void inputStringArray(string arr[], int size) { for (int i = ; i < size; i++) { cout << "请输入第" << i + 1 << "个字符串:"; getline(cin, arr[i]); } } int main() { const int SIZE = 3; string arr[SIZE]; inputStringArray(arr, SIZE); for (int i = ; i < SIZE; i++) { cout << "第" << i + 1 << "个字符串是:" << arr[i] << endl; } return ; } ``` 这个函数的作用是输入一个字符串数组,其 `arr` 是字符串数组,`size` 是数组的大小。函数使用 `getline` 函数从标准输入读取每个字符串,并将其存储在数组。在主函数,我们可以使用这个函数来输入一个字符串数组,并输出每个字符串。 ### 回答2: 要用C++一个函数来输入字符串数组,可以使用以下代码: ```cpp #include <iostream> #include <string> #include <vector> std::vector<std::string> inputStringArray() { std::vector<std::string> strArray; int numStrings; std::cout << "请输入字符串的数量:"; std::cin >> numStrings; for (int i = 0; i < numStrings; i++) { std::string str; std::cout << "请输入第 " << (i + 1) << " 个字符串:"; std::cin >> str; strArray.push_back(str); } return strArray; } int main() { std::vector<std::string> array = inputStringArray(); std::cout << "输入的字符串数组为:" << std::endl; for (const std::string& str : array) { std::cout << str << std::endl; } return 0; } ``` 这个函数使用了一个字符串数组来存储用户输入的字符串,使用了`std::vector`容器来实现。首先,用户需要输入字符串的数量。然后,在一个循环,用户依次输入每个字符串,然后将其添加到字符串数组。最后,函数返回这个字符串数组。 在主函数,我们调用了`inputStringArray()`函数来获取用户输入的字符串数组,并打印出这个数组的所有字符串。 ### 回答3: 要用C++语言编一个函数来输入字符串数组,可以按照以下步骤进行操作: 1.首先,在函数参数一个字符串数组,用来保存输入的字符串。 2.然后,在函数内部使用循环来逐个输入字符串。可以使用一个计数器来记录当前输入了多少个字符串。 3.在循环内部,使用C++的输入流对象std::cin来输入字符串,并将其保存到字符串数组。可以使用数组的索引来确定保存的位置,例如:array[counter] = inputString;(其,array是入的字符串数组,counter是计数器变量,inputString是存储输入的字符串的变量)。 4.每次循环结束后,计数器要自增1,以便记录下一个字符串的位置。 5.在循环结束后,返回字符串数组。可以使用C++的指针来实现这一操作,即return array;。 下面是一个示例代码,用于说明如何实现上述功能: ```cpp #include <iostream> #include <string> // 函数名为inputStrings,参数字符串数组 std::string* inputStrings(std::string array[], int size) { int counter = 0; // 计数器 while (counter < size) { std::string inputString; // 用于保存输入的字符串 std::cout << "请输入第" << counter + 1 << "个字符串:"; std::cin >> inputString; array[counter] = inputString; counter++; // 计数器自增1 } return array; } int main() { const int size = 5; // 字符串数组的大小 std::string strings[size]; // 声明一个字符串数组 // 调用inputStrings函数,将输入的字符串保存到数组 inputStrings(strings, size); // 打印输入的字符串数组 std::cout << "输入的字符串为:"; for (int i = 0; i < size; i++) { std::cout << strings[i] << " "; } std::cout << std::endl; return 0; } ``` 这样,当运行上面的代码时,程序会提示用户输入5个字符串,并将这些字符串保存到名为`strings`的字符串数组。然后,程序会打印出输入的字符串数组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值