[华为机试练习题]12.整型字符串排序
来源:互联网 发布:阿里云打印域名证书 编辑:程序博客网 时间:2024/05/27 16:43
题目
给定字符串内有很多正整数,要求对这些正整数进行排序,然后返回排序后指定位置的正整数 排序要求:按照每个正整数的后三位数字组成的整数进行从小到大排序 1)如果不足三位,则按照实际位数组成的整数进行比较 2)如果相等,则按照输入字符串中的原始顺序排序 说明(以下内容考生无须检查,调用者保证): 1) 字符串以’\0’结尾,仅包含数字、空格 2) 字符串内正整数之间以单个空格分隔,字符串首尾没有空格 3) 正整数格式为十进制,大小:1~1000000,正整数的数字非零开始 示例:如字符串内容1223 22 3232 2016按照规定排序后 2016 22 1223 3232查询排序后的第3个数是 1223 知识点: 工程环境请使用VS2005题目来源: 软件训练营 维护人: d00191780 练习阶段: 中级
代码
/*---------------------------------------* 日期:2015-06-29* 作者:SJF0115* 题目:整型字符串排序 * 来源:华为上机-----------------------------------------*/#include <iostream>#include <string>#include <vector>#include <algorithm>using namespace std;/*****************************************************************************Description : 根据字符串内容,输出排序后指定位置的正整数Input Param : input_string 输入的字符串 serial_number 排序后的序列号,从1开始 output_string_max_length output_string的最大长度,包括'\0'Output Param : output_string 返回指定的字符串,必须包括'\0',内存由调用者分配和释放Return Value : 成功返回0,失败返回-1(如:输入字符串是空串、输入序列号超出范围、最大长度不足)*****************************************************************************/int find_string(const char* input_string, int serial_number, int output_string_max_length, char* output_string){ if(input_string == NULL || output_string == NULL){ return -1; }//if if(serial_number < 1 || output_string_max_length < 1){ return -1; }//if int size = strlen(input_string); vector<int> vec; int tmp = 0; for(size_t i = 0;i <= size;++i){ if(input_string[i] == ' ' || i == size){ if(tmp == 0){ return -1; }//if vec.push_back(tmp); tmp = 0; }//if else{ tmp = tmp * 10 + input_string[i] - '0'; }//else }//for //冒泡排序 int n = vec.size(); for(int i = 0;i < n-1;++i){ for(int j = 0;j < n-i-1;++j){ if(vec[j] % 1000 > vec[j+1] % 1000){ swap(vec[j],vec[j+1]); }//if }//for }//for if(serial_number > vec.size()){ return -1; }//if char num[11]; sprintf(num,"%d",vec[serial_number - 1]); int len = strlen(num); if ((len + 1) > output_string_max_length){ return -1; }//if strcpy(output_string,num); return 0;}
0 0
- [华为机试练习题]12.整型字符串排序
- [华为机试练习题]47.整型反序
- 华为机试题: 整型字符串排序
- [华为机试练习题]6.整数排序
- [华为机试练习题]3.分解字符串
- [华为机试练习题]23.修改字符串
- 华为机试——整型到字符串的转换
- 华为机试--字符串排序
- 华为机试-字符串排序
- 【华为机试】字符串排序
- 华为机试-字符串排序
- [华为机试练习题]21.二维数组的列排序
- 华为机试练习题汇总
- 华为机试在线练习题
- 华为机试——字符串排序
- 华为OJ--整型数排序
- 华为机试题: 整型数排序(JAVA)
- 整型字符串排序
- linux core文件GDB调试方法
- java基础-多线程
- Oracle 避免在查询中使用函数
- 项目问题总结2:GUID区分大小写吗?
- Intent跳转的2种方式
- [华为机试练习题]12.整型字符串排序
- EditText的常用技巧
- K最邻近算法和局部敏感哈希LSH
- 最新计算机类图书强推重磅一览
- 记VS2008初始化Microsoft Visual Sourcesafe源代码管理提供程序时失败
- 使用WCF 4.0 构建 REST Service
- 《算法导论(第三版)》(一)
- [MySQL]常见问题篇
- ViewController生命周期详解