排序+查找算法初探
RT
Update on 2020/11/29
RT
Update on 2020/11/29
题目背景:
编程将字符串s倒序输出,要求利用函数递归实现。
**输入格式要求:"%s" 提示信息:"input your string:\n"
**输出格式要求:"%c" 程序运行的输入输出样例: 屏幕先输出提示信息: input your string: 然后用户键盘输入: abcdefg 最后屏幕输出: gfedcba
标准答案:
#include <stdio.h>
#include <string.h>
void reverse(char s[]) //形参可以不填[]内容
{
int len;
len = strlen(s); //我淦,string操作还没学,我做这个题的时候造了个函数统计字数。
if (len == 1)
{
printf("%c", s[0]); //基线情况,s+到最后,只剩一个字符了。
}
else
{
reverse(s + 1);
//这个地方体现递归,不过字符串+1是什么操作?暂且朦胧着看。
//突然好像想通了,朦朦胧胧的。
//之前做过一个斐波那契数列的,挨边往下论。
//但这个不一样,解答里头(也就是这个)的这个递归,把printf放在了递归下面,你不递归到头,就不printf。到头了再慢慢往回赶。也恰好体现了递归特性。
printf("%c", s[0]);
}
}
int main()
{
char s[100];
printf("input your string:\n");
scanf("%s", s);
reverse(s);
}
不过话说,我特么还没学string操作呢。
下面放上我的解答:
#include <stdio.h>
int GetTrueSize(char str[30]);
int PrintDaoXu(char str[30], int size);
int main(void){
char str[30];
int size;
printf("input your string:\n");
scanf("%s", &str);
size = GetTrueSize(str);
PrintDaoXu(str, size);
return;
}
//肝,递归!
//不过咱们这里有个好处,就是长度默认是30。
int GetTrueSize(char str[30]){
int i,j;
for(i = 0; i <= 30; i++){
if(str[i] == 0){
return i;
break;
}
}
}
int PrintDaoXu(char str[30], int size){
for (; size >= 1; size--){
printf("%c", str[size-1]);b
}
return 0;
}
起因:
书上有个题,让判断所给数据是否符合如下条件:
1.8-10位
2.包含英文字母(大小写任意)
3.包含数字
我的方案:
$len=strlen($pwd);
if ($len>=8 and $len<=10){
if(preg_match('/[A-Z]/',$pwd)){
if(preg_match('/\d/',$pwd)){
echo '奥利给!';
}
}
}else{
echo '不奥利给!';
}
看了眼标答,我嘞个去,啥玩意儿?
function checkPasswordSafe($password){
$pattern = '/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$/'; // 必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间
if(preg_match($pattern,$password)){
echo "密码较强";
}else{
echo "密码较弱";
}
这..啥玩意儿?
1.(?= 通俗一点就是,你后边得有我等号后的内容,但是呢,我匹配到的内容只是这前头的东西。
比方说:Xiaomi(?=5|6|7|8|9|10),对于Xiaomi5,匹配到的结果是Xiaomi(没有5哦),但是对于Xiaomi4,就匹配不到!
2.(?! 通俗一点就是跟上面那个玩意儿反过来!
比方说:Xiaomi(?!5|6|7|8|9|10),对于Xiaomi5,匹配不到的,但是对于Xiaomi4,匹配得到,结果是Xiaomi(没有4)。
3.(?: 通俗一点就是,你后边得有我等号后的内容,但是呢,我匹配到的内容既包含前头也包含后头。
比方说:Xiaomi(?=5|6|7|8|9|10),对于Xiaomi5,匹配到的结果是Xiaomi5(有5啦),但是但是对于Xiaomi4,就匹配不到!
还有(?<= (?<! 就是把它们放到一串东西前面就可以啦!
回到刚开始的那个问题吧!
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
用了波在线正则工具,发现上边这个好像行不通啊,但是在php中是可以实现的。
我改了下,^((?=.*\d)|(?=.*[a-z])|(?=.*[A-Z])).{8,10}$
,顺利通过检阅。
来个大佬帮我解释一下呗 /doge 谢谢~刚刚写完重新看了一眼,没加代码块的米字号啊斜杠啊全给我转义了,害。
https://lives.jd.com/#/[ID]/live
To
https://jdpull.jd.com/live/[ID].m3u8
备份一份,万一回来用到了呢~
近期在折腾win10美化~正好搜到了留一份~
::{20D04FE0-3AEA-1069-A2D8-08002B30309D} 我的电脑
::{21EC2020-3AEA-1069-A2DD-08002B30309D} 控制面板
::{992CFFA0-F557-101A-88EC-00DD010CCC48} 拨号网络
::{BFB23B42-E3F0-101B-8488-00AA003E56F8} 浏览器
::{20D04FE0-3AEA-1069-A2D8-08002B30309D} 我的电脑
::{208D2C60-3AEA-1069-A2D7-08002B30309D} 网上邻居
::{2227A280-3AEA-1069-A2DE-08002B30309D} 打印机
::{645FF040-5081-101B-9F08-00AA002F954E} 回收站
::{D6277990-4C6A-11CF-8D87-00AA0060F5BF} 计划任务
::{450D8FBA-AD25-11D0-98A8-0800361B1103} 我的文档
::{FF393560-C2A7-11CF-BFF4-444553540000} URL历史