如图,数字代表不同的字符串,我想知道用什么方法可遍历以做到找到每一列中最长的字符串的长度。
注意,图只是一种情况,已知字符串数组的行数和每一行对应的列数
怎么样对一个遍历一个不规则字符串数组,找到每列中最长字符串的大小
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答
- threenewbee 2018-07-22 13:49关注
// Q695423.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "stdlib.h" #include "string.h" #include <iostream> using namespace std; struct MyArr { int len; char ** arr; MyArr(int n, char * _arr[]) { n = n / (sizeof(char *)); arr = new char *[n]; len = n; for (int i = 0; i < n; i++) arr[i] = _arr[i]; } ~MyArr() { delete[] arr; } }; class ExpendCol { private: int _len; int _alen; int * _pa; void expend(int a) { int * pp = _pa; _pa = new int[a]; memset(_pa, 0, sizeof(int) * a); memcpy(_pa, pp, sizeof(int) * _len); delete[] pp; _alen = a; } public: ExpendCol() { _alen = 1; _pa = new int[_alen]; _len = 0; } ~ExpendCol() { delete[] _pa; } void set(int index, int value) { while (index >= _alen) { expend(_alen * 2); } if (_len <= index) _len = index + 1; _pa[index] = value; } int get(int index) { if (index >= _len) return 0; return _pa[index]; } int length() { return _len; } }; int _tmain(int argc, _TCHAR* argv[]) { char * s1 = "file"; char * s2 = "edit"; char * s3 = "view"; char * s4 = "project"; char * s5 = "build"; char * s6 = "debug"; char * s7 = "team"; char * s8 = "data"; char * s9 = "tools"; char * s10 = "architecture"; char * a1[] = { s1, s2, s3 }; char * a2[] = { s4, s5, s6, s7 }; char * a3[] = { s8, s9 }; char * a4[] = { s10 }; MyArr arr[] = { MyArr(sizeof(a1), a1), MyArr(sizeof(a2), a2), MyArr(sizeof(a3), a3), MyArr(sizeof(a4), a4) }; ExpendCol r; for (int i = 0; i < sizeof(arr) / sizeof(MyArr); i++) { for (int j = 0; j < arr[i].len; j++) { int slen = strlen(arr[i].arr[j]); if (r.get(j) < slen) r.set(j, slen); } } for (int i = 0; i < r.length(); i++) { cout << "col" << i << ":" << r.get(i) << endl; } return 0; }
解决 无用评论 打赏 举报
悬赏问题
- ¥15 MATLAB运行显示错误,如何解决?
- ¥15 c++头文件不能识别CDialog
- ¥15 Excel发现不可读取的内容
- ¥15 UE5#if WITH_EDITOR导致打包的功能不可用
- ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
- ¥20 yolov5自定义Prune报错,如何解决?
- ¥15 电磁场的matlab仿真
- ¥15 mars2d在vue3中的引入问题
- ¥50 h5唤醒支付宝并跳转至向小荷包转账界面
- ¥15 算法题:数的划分,用记忆化DFS做WA求调