[编程题]图片整理
来源:互联网 发布:angela baby 知乎 编辑:程序博客网 时间:2024/04/30 15:22
Talk is cheap, show me the code.
一、问题描述
Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。
输入描述:
Lily使用的图片包括”A”到”Z”、”a”到”z”、”0”到”9”。输入字母或数字个数不超过1024。
输出描述:
Lily的所有图片按照从小到大的顺序输出
输入例子:
Ihave1nose2hands10fingers
输出例子:
0112Iaadeeefghhinnnorsssv
二、问题分析
简单的排序问题,可以直接使用STL库中的排序函数,也可以子集实现一个排序函数。
解题方式1:
采用STL库的方式,这应该是最简单的解法了。
#include <iostream>#include <string>#include <algorithm>using namespace std;int main(){ string s; while (cin >> s) { sort(s.begin(), s.end()); cout << s << endl; } return 0;}
解题方式2:
自己最开始拿到问题的解法。。。还把每个字符存了一次,纪念一下傻傻的自己。。。
#include <iostream>#include <vector>#include <iterator>#include <algorithm>using namespace std;int main(){ string s; while (cin >> s) { vector<char> vect; for (int i = 0; i < s.size(); i++) { vect.push_back(s[i]); } sort(vect.begin(), vect.end()); for (vector<char>::iterator it = vect.begin(); it != vect.end(); ++it) { cout << *it; } cout << endl; } return 0;}
解题方式3:
子集实现了快速排序,然后调用排序进行处理。
#include <iostream>#include <string>using namespace std;void quickSort(string::iterator beg, string::iterator end){ if (beg >= end - 1) { return; } string::iterator it1 = beg; string::iterator it2 = end - 1; char ch = *beg; while (it1 < it2) { while (*it2 >= ch) { it2--; } while (*it1 <= ch && it1 < it2) { it1++; } if (it1 < it2) { char temp = *it1; *it1 = *it2; *it2 = temp; } } if (it1 != beg) { *beg = *it1; *it1 = ch; } quickSort(beg, it1); quickSort(it1 + 1, end);}int main(){ string s; while (cin >> s) { quickSort(s.begin(), s.end()); cout << s << endl; } return 0;}
0 0
- [编程题]图片整理
- 整理图片
- 图片整理
- 图片整理
- 图片整理
- 图片整理
- 图片整理
- 图片整理
- 图片整理
- 图片整理
- 图片整理
- 图片整理
- 图片整理
- 图片整理
- 整理的JS编程题
- 头条面经整理(编程题)
- 华为OJ题5---图片整理
- 整理C++面试经典编程题
- Oracle 专用服务器与共享服务器
- 使用KEIL开发LPCXpresso54608入门
- springboot与敏捷开发
- 内存安全的 Lua api 调用
- 用Scrapy与Django一起搭建一个简单的爬虫框架
- [编程题]图片整理
- ExecuteScalar()方法
- 机器学习_线性回归,梯度下降算法与正规方程
- 字符串同构问题——leetcode205/leetcode290
- python的魔法方法
- poj2104
- 微信小程序
- LBP(四)
- Hrbust 1688 数论中的异或【思维+数论异或】好题~