码农谷题目之将字符串中的字符按规则重新排列
来源:互联网 发布:美国基因检测 数据 编辑:程序博客网 时间:2024/05/17 05:16
码农谷坑爹的和以前OJ有点区别就是你不能while循环读取,只能一个进程做一题,因为这个就花了好长时间,以下是AC的C代码:
#include <stdio.h>#include <string.h>#define VALUE(p,i,v) \ if(p[i] >= 'A' && p[i] <= 'Z') \ { \ v = p[i] - 'A'; \ } \ else if(p[i] >= 'a' && p[i] <= 'z') \ { \ v = p[i] - 'a'; \ }#define IS_NORMAL(p,i) ((p[i] >= 'A' && p[i] <= 'Z') || (p[i] >= 'a' && p[i] <= 'z'))void sort(char* line){ short len = strlen(line); char t1 = 0,t2 = 0; short i,j,e,t3; i = 0; while(i < len && !IS_NORMAL(line,i)){ i ++; } e = len - 1; while(e >= 0 && !IS_NORMAL(line,e)){e --;} for(;i <= e;i ++) { while(i <= e && !IS_NORMAL(line,i)){ i ++; } for(j = e; j > i; j --) { while(j > i && !IS_NORMAL(line,j)){j --;} VALUE(line,j,t1); t3 = j - 1; while(t3 > i && !IS_NORMAL(line,t3)){t3 --;} VALUE(line,t3,t2); if(t2 > t1) { t1 = line[j] ; line[j] = line[t3]; line[t3] = t1 ; } } }}int main(){ char szLine[1002] = {0}; gets(szLine); sort(szLine); puts(szLine); return 0;}
1 0
- 码农谷题目之将字符串中的字符按规则重新排列
- 将输入字符串中的字符按如下规则排序。 规则 1 :英文字母从 A 到 Z 排列,不区分大小写
- 将参数字符串中的字符反向排列
- 将参数字符串中的字符反向排列
- 将一个字符串中的字符反向排列
- 第八周项目三(2)—顺序串算法之实现将已知字符串所有字符倒过来重新排列
- 将一个字符串数组中的字母按照以下规则排列
- 编写一个程序,输入一串不超过60个字符组成的且不包含换行符的字符串,将字符串中的A到Z的字母按英文字典字母顺序重新排列,排列后的单词的长度要与原始句子中的长度相同,并且要求只对A到Z的字母重新排列,其
- 上机题目(中级)- 将数组中的字符串按指定长度重新分割 (Java)
- 将参数字符串中的字符反向排列 --递归
- 编写一个函数将参数字符串中的字符反向排列
- C语言程序-将参数字符串中的字符反向排列
- 面试3之确定其中一个字符串的字符重新排列后,能否变成另一个字符串
- 将字符串符合规则的字符取出
- 将参数字符串中的字符反向排列(递归实现),可变参数列表函数实现
- 编写一个函数reverse_string(char * string) 实现:将参数字符串中的字符反向排列。
- C语言实现 函数reverse_string(char * string) 将参数字符串中的字符反向排列。
- C语言 编写一个函数reverse_string(char * string) 实现:将参数字符串中的字符反向排列。
- ios8之后使用CLLocationManager进行定位
- Android 6.0 申请权限
- 近期曝光的针对银行SWIFT系统攻击事件综合分析
- tmux常用命令与快捷键
- hdoj-2066
- 码农谷题目之将字符串中的字符按规则重新排列
- Python--Matplotlib绘图库
- Java中的static关键字深入解析
- iOS-获取当前View所在的控制器
- 旅行 纪中2547 并查集+枚举
- WebService 的创建,部署和使用
- Objective-C Runtime 运行时之二:成员变量与属性
- boommenu
- SO_REUSEADDR和SO_REUSEPORT异同