div>
笔记

php算法代码,emoji表情换成自己喜欢的就行post请求api源码<?php//可以封装成以下的API代码,接受GET请求,参数包括://action:指定API动作,encode表示加密,decode表示解密;//content:需要加密或解密的字符串,使用urlencode编码;$miyu=['表情1','表情2','表情3','表情4','表情5','表情6','表情7','表情8','表情9','表情10'];functionencode($str,$miyu){$code=null;$hexArray=str_split_unicode(bin2hex($str));foreach($hexArrayas$k=>$v){$x=base_convert($v,16,10)+$k%16;if($x>=16){$x-=16;}$code.=$miyu[($x/10)].$miyu[$x%10];}return$code;}functiondecode($str,$miyu){$code=null;$hexArray=str_split_unicode($str);$n=count($hexArray);for($i=0;$i<$n;$i++){if($i%2==0){if(empty($hexArray[$i+1])){break;}$A=array_search($hexArray[$i],$miyu);$B=array_search($hexArray[$i+1],$miyu);$x=(($A*10)+$B)-(($i/2)%16);if($x<0){$x+=16;}$code.=dechex($x);}}returnpack("H*",$code);}functionstr_split_unicode($str,$l=0){if($l>0){$ret=array();$len=mb_strlen($str,"UTF-8");for($i=0;$i<$len;$i+=$l){$ret[]=mb_substr($str,$i,$l,"UTF-8");}return$ret;}returnpreg_split("//u",$str,-1,PREG_SPLIT_NO_EMPTY);}functiondaddslashes($string,$force=0,$strip=FALSE){!defined('MAGIC_QUOTES_GPC')&&define('MAGIC_QUOTES_GPC',get_magic_quotes_gpc());if(!MAGIC_QUOTES_GPC||$force){if(is_array($string)){foreach($stringas$key=>$val){$string[$key]=daddslashes($val,$force,$strip);}}else{$string=addslashes($strip?stripslashes($string):$string);}}return$string;}if(isset($_POST['action'])&&isset($_POST['content'])){$action=daddslashes($_POST['action']);$content=daddslashes($_POST['content']);if($action=='encode'){$result=encode($content,$miyu);echojson_encode(array('error'=>200,'data'=>$result,'message'=>'加密成功'),JSON_UNESCAPED_UNICODE);}elseif($action=='decode'){$result=decode($content,$miyu);echojson_encode(array('error'=>200,'data'=>$result,'message'=>'解密成功'),JSON_UNESCAPED_UNICODE);}else{echo'Invalidaction';}}else{echo'Invalidparameters';}?>

2024-7-10 179 0
笔记

今天室友面试了,居然挂到了ByteDance的二面,其中考了一个大整数相乘,那么我就尝试借助Python再来写一遍吧!实现思路很简单,平时我们咋计算乘法的,就按照公式计算就好了,程序中就是要考虑好边界条件与此同时,结合一下编程语言的特性,也会使得代码更加精简。#-*-coding:utf-8-*-#author:DYBOY#time:2019-9-2121:53:03#desc:大数相乘#字符串分割为listdefstr_split(strs):str_arr=[]forcharinstrs:str_arr.append(char)returnstr_arr#大数相加defbig_add(a_str,b_str):aa=str_split(a_str)bb=str_split(b_str)sum_str=''c=0whilelen(aa)orlen(bb)orc:try:a=int(aa.pop())except:a=0try:b=int(bb.pop())except:b=0c+=a+bsum_str=str(c%10)+sum_strc=c>9returnsum_str#大数相乘之大数*个位数defsingle_mutipule(a_str,b_char):aa=str_split(a_str)b=int(b_char)sum_str=''c=0whilelen(aa)orc:try:a=int(aa.pop())except:a=0mu=a*b+csum_str=str(mu%10)+sum_strifmu>9:c=int((str(mu))[:-1])else:c=0returnsum_str#大数相乘defmutipule(a_str,b_str):aa=str_split(a_str)bb=str_split(b_str)sums_arr=[]sum_str=''foridx,binenumerate(bb):a_b1=single_mutipule(aa,b)+idx*'0'sums_arr.append(a_b1)forsinsums_arr:sum_str=big_add(sum_str,s)returnsum_strif__name__=='__main__':s1='4174468421068499's2='99861646849'print(mutipule(s1,s2))虽然网上很多大神写了一些特别漂亮的代码,但是一串儿的循环嵌套,数组取值,脑内循环,太猛了此方法将部分计算过程拆分为函数,相信对于大家的理解更有帮助另外补充一句,python的int类型是无限精度的,所以python不需要实现大整数相乘…

2024-7-10 122 0
笔记

直接看代码&注释.box{display:flex;/*还可以设置行内元素的inline-flex*/flex-direction:row;/*主轴水平!:row:列(左至右);row-reverse:列(右至左)主轴竖直!cloumn:行(上至下);column-reverse:行(下至上)*/flex-wrap:nowrap;/*一行放不下的时候:nowrap不换行,wrap换行,wrap-reverse换行第一行在下方*//*flex-flow:rownowrap;是上面两者的简写形式*/justify-content:flex-start;/*定义项目在主轴上的对齐方式flex-start左侧,flex-end右侧,center居中,space-between两端对齐项目间隔相等,space-around项目左右两侧间距相同*/align-items:flex-start;/*定义项目在纵轴上的对齐方式flex-start上,flex-end下,center居中,baseline项目中第一行文字对齐,stretch默认值高度未设置时候将撑满容器高度*/}.item{order:0;/*定义项目的排列顺序,数值越小越靠前,默认0*/flex-grow:0;/*定义剩于空间的放大比例,默认0不放大,如果多个item均为1,则将等分剩于的空间,不同值按照比例分配剩于空间*/flex-shrink:1;/*定义项目缩小比例,默认为1,空间不足,均等比例缩小,为0则不缩小*/flex-basis:auto;/*定义项目在分配剩于主轴空间之前的主轴占据的长度,浏览器会根据这个属性去计算是否有剩于的空间*//*flex:auto;是flex-grow、flex-shrink和flex-basis的简写默认值:01auto*/align-self:flex-start;/*设置单个项目与其他项目不一样的对齐方式,可覆盖父容器设置的align-items,默认auto继承父元素的align-items值auto|flex-start|flex-end|center|baseline|stretch*/}

2024-7-10 285 0
笔记

周末学习设计模式有点上头,遂打开“脉脉”APP放松一下,看到一些老哥吐槽“互联网黑话”的帖子,顺便就写了个“互联网黑话生成器”分享给大家,全篇请带着娱乐精神阅读,请勿对号入座!!!一、起因其中有位老哥反思自己不会互联网黑话,面试惨被拒:首先看看效果:二、实现话生成器还是非常简单,就是把常见的互联网黑话拿出来“随机排列组合”,也是掌握说互联网黑话方法的精髓(我说的!)。2.1OCR这些黑话比较多,找了脉脉上老哥分享的一张图:2.2范本有了“黑话关键词”,要形成完整的一句话还得需要介词,所以找到了“一鸣同学”在九周年上指出的一个双月材料里的一段话:所以我们就按照这个结构来塞入我们的黑话关键词!2.3随机组合分类整理好关键词到数组中2.4效果多生成几个瞅瞅:三、总结为啥生成的句子,看起来还有那么一点点道理呐?实际上,这些词汇大部分都是一些“方法论”,方法论的词语是一些场景的抽象总结,但是介于大家认知的差异,所以会让人理解起来有些难度。正是因为理解有一定的难度,所以在这种融合了多种多样的关键词后,更是加深了理解难度,所以初看还是有那么一点道理。言归正传,“互联网黑话”这个词,实际是对那些滥用方法论的一种讽刺,方法论本身是对一些共性和场景的抽象总结,其本身并无任何问题,大家其实应该有学习一些方法论的必要。学习方法论绝不是为了学会了几个抽象词语,就一通滥用增加B格,而是为了减少团队成员的认知差异,提升团队的沟通效率。可以体验一手“互联网黑话生成器”:

笔记

你是否曾对CSS中的百分比单位非常疑惑?是否简单认为百分比的基准值就是所在元素的的宽高?本文将从包含块角度帮助大家理解记忆百分比单位的计算规则,便于巧妙运用包含块规则解决实际开发中的布局问题!一、确立包含块在我们常用的场景中,position的值有relative、absolute、fixed、static,且这四种属性为代表,浏览器对于这四种属性的包含块确立规则如下:值说明absolute绝对定位,包含块就是由它的最近的position的值不是static的祖先元素的内边距区的边缘组成。fixed固定定位,在连续媒体下(continuousmedia)包含块是viewport(视口),在分页媒体(pagedmedia)下的情况下包含块是分页区域(pagearea)relative相对定位,包含块是最近祖先块级元素或格式化上下文static默认值,没有定位,元素出现在正常的流中(忽略top,bottom,left,right或者z-index声明),同relative规则根元素()所在的包含块是一个被称为初始包含块的矩形。他的尺寸是视口viewport(forcontinuousmedia)或分页媒体pagemedia(forpagedmedia).二、百分比值计算规则百分比单位计算基数属性当前属性备注包含块的widthwidth、left、right、padding、margin若包含块position值为relative或static,则当前元素的计算值为auto包含块的heightheight、top、bottom则其值为:包含块height值*当前元素height百分比值三、包含块原理的应用场景自己之前一直有个误区,认为padding、margin的百分比单位的计算基数是当前元素矩形区域宽高来算,但是根据包含块的规则,他们的计算基数应该是包含块的width值。之前团队里大佬洪岩问:“如何实现一个高度是自适应宽度3倍的图片?”实现方法1:利用Chrome浏览器最新支持的aspect-ratio属性,其问题就是C端浏览器兼容性不好.box{aspect-ratio:1/3;//width/height宽高比}aspect-ratio实现方法2:巧用包含块规则(padding和width属性百分比值的计算基数是包含块的宽度)+背景图实现1比3的实现

友情链接申请友链