70 likes | 278 Views
课程首页. 解题思路. 代码分析. 再优化 ?. 题目要求. 作业交流 (PASSWORD). 林艺山 学号 :130321020. 作业交流. 结构混乱. 题目要求. 我的困扰. 我的困扰. 作业交流. 结构混乱. 问题描述. 密码是否合法 密码安全等级. 我的困扰. 关键步骤. ASCⅡ 码比较 字符比较. 比较方式. 优化思路. 减少 循环 少耗内存. 作业交流. 结构混乱. #include <iostream> using namespace std; int main()
E N D
课程首页 解题思路 代码分析 再优化? 题目要求 作业交流(PASSWORD) 林艺山 学号:130321020
作业交流 结构混乱 题目要求 我的困扰 我的困扰
作业交流 结构混乱 问题描述 密码是否合法 密码安全等级 我的困扰 关键步骤 ASCⅡ码比较 字符比较 比较方式 优化思路 减少循环 少耗内存
作业交流 结构混乱 #include <iostream> usingnamespace std; int main() { char Pstr[100]; int i,plevel; int p_b=0,p_s=0,p_n=0,p_o=0; gets(Pstr); if(strlen(Pstr)<6) {cout<<0<<endl; return 0; } if(((Pstr[0]>='A' && Pstr[0]<='Z')||(Pstr[0]>='a' && Pstr[0]<='z'))==false) {cout<<0<<endl; return 0; } for(i=0;Pstr[i]!='\0';i++) { if(Pstr[i]>='A' && Pstr[i]<='Z') p_b=1; elseif(Pstr[i]>='a' && Pstr[i]<='z') p_s=1; elseif(Pstr[i]>='0' && Pstr[i]<='9') p_n=1; else p_o=1; } plevel=p_b+p_s+p_n+p_o; cout<<plevel<<endl; return 0; } 核心代码 输入字符串 判断字符串长度是否合法判断首字符是否合法开始字符串循环判断是否包含大写字符判断是否包含小写字符判断是否有数字判断有三种字符外字符判断密码级别输出密码级别
作业交流 结构混乱 复杂度分析 评测结果 O(n) 复杂度分析
作业交流 结构混乱 算法改进? • Gets支持空格、制表符和回车等字符,程序未做空格判断,改SCANF? • 复杂度优化?
作业交流 结构混乱