主要用途 Cookie 安全性 浏览器使用 PSL 来决定哪些域名可以共享或隔离 Cookie。...如果没有 PSL,可能会错误地将 buyao.de 视为普通子域名,导致安全漏洞。 DNS 和域名解析 在处理域名时,PSL 帮助区分有效域名和无效域名。...网络爬虫和反垃圾邮件 爬虫和反垃圾邮件系统可以利用 PSL 来识别合法域名,避免误判或漏判。 域名注册和管理 域名注册商可以利用 PSL 来验证用户提交的域名是否符合公共后缀规则。...访问 PSL 官方仓库 PSL 的官方代码库托管在 GitHub 上:https://github.com/publicsuffix/list 提交 Pull Request 在 GitHub 上创建一个...另外加入到PSL后,PSL下的子域名可以使用 cloudflare 托管。
概述 azjezz/psl 是一个PHP标准库(PHP Standard Library)项目。这个项目是一个为PHP程序员提供的一致性、集中化且类型良好的API集合。...\Password\hash; use function \Psl\Password\verify; use function \Psl\Password\get_information; use function...\Psl\Password\needs_rehash; /** 1....Async; use Psl\Filesystem; use Psl\IO; use Psl\Str; use Psl\Unix; require __DIR__.'...\Async; use Psl\IO; use Psl\Str; use Psl\TCP; Async\main(static function (): int { Async\concurrently
从这里面找到blat的二进制可执程序下载地址(优先选择这样的软件安装方式) mkdir blat cd blat wget http://hgdownload.cse.ucsc.edu/admin/exe/linux.x86...#blat常见用法 #处理单个job blat chr11.fa human/test.fa test.psl #输出不含序列 blat chr11.fa human/test.fa -out=pslx...比如我就从教程找到psl文件说明:http://blog.sina.com.cn/s/blog_165caa4fd0102wh36.html 默认的输出结果是列表形式的文本文件,即psl格式。...psl格式的结果包含了详细的比对位置信息,每一列的意义都在文件开头列出。...3.psl结果里面碱基位置的计算是从0开始的而不是1. 做不同类型的比对时候需要注意一个问题,就是 “-t”和“-q”的定义必须为同一类型。
; if (capacity == 0) { psl->array = NULL; psl->size = 0; psl->capicity = 0; } else { psl...; assert(psl->array); } } //销毁 void SeqListDestory(SeqList* psl) { assert(psl); free(psl->array...); psl->array = NULL; psl->capicity = 0; psl->size = 0; } //容量检测 void CheckCapacity(SeqList* psl)...x) { assert(psl); CheckCapacity(psl); psl->array[psl->size] = x; psl->size++; } //尾删 void SeqListPopBack...(SeqList* psl) { assert(psl); if (psl->size > 0) { psl->size--; } } //头插 void SeqListPushFront(
(SL* psl) { assert(psl); psl->a = NULL; psl->capacity = psl->size = 0; } void SLDestory(SL* psl)...{ assert(psl); if (psl->a) { free(psl->a); psl->a = NULL; psl->capacity = psl->size = 0; }...SLPushBack(SL* psl, SLDataType x) { assert(psl); SLCheckCapacity(psl); psl->a[psl->size] = x; psl...x) { assert(psl); SLCheckCapacity(psl); int end = psl->size-1; while (end>=0) { psl->a[end+1]...; }*/ //暴力的检查,直接报错——元素的合理性 assert(psl->size > 0); psl->size--; //SLErase(psl, psl->size - 1);//
顺序表初始化 //初始化 void SLInit(SL* psl) { assert(psl);//断言 psl->data = NULL; psl->size = 0; psl->capacity...顺序表销毁 //销毁 void SLDestroy(SL* psl) { assert(psl);//断言 free(psl->data); psl->data = NULL; psl->size...* psl) { assert(psl); free(psl->data); psl->data = NULL; psl->size = 0; psl->capacity = 0; } //...psl) { assert(psl); assert(psl->size > 0); // /*if (psl->size == 0) { return; }*/ --psl->size...for(int i=psl->size; i > pos; --i){ psl->data[i] = psl->data[i - 1]; } psl->data[pos] = x; ++psl
(psl->a, sizeof(SLDataType) * psl->capacity * 2); assert(tmp); psl->a = tmp; psl->capacity...(psl); psl->a[psl->size++] = x; } (3)头插 void SLPushFront(SL* psl, SLDataType x) { assert...(psl); CheakCapacity(psl); int i = psl->size - 1; for (i = psl->size - 1; i >= 0; i--)...(SL* psl) { assert(psl); assert(psl->size > 0); for (int i = 1; i psl->size; i++)...free(psl->a); psl->a = NULL; psl->capacity = 0; psl->size = 0; } 3.
void SLCheckCapacity(SL* psl) { if(psl->size == psl->capacity) { int newCapacity = (psl...; //确保psl不为空 SLCheckCapacity(psl); psl->arr[psl->size] = x; psl->size++; } 测试: 4.4 头部插入数据...(psl); for(int i = psl->size; i>0; i--) { psl->arr[i] = psl->arr[i-1]; } psl-...void SLPopBack(SL* psl) { assert(psl && psl->size);//psl不能为空,size不能为0,否则没有意义 psl->size--; } 测试...(psl); for(int i=pos; ipsl->size-1; i++) { psl->arr[i] = psl->arr[i+1]; } psl
assert(psl); psl->a = NULL; psl->size = 0; psl->capacity = 0; } 断言 注意参数!...) { assert(psl); free(psl->a); psl->a = NULL; psl->capacity = psl->size = 0; } 断言 先free掉malloc出来的空间..., SLDataType x) { assert(psl); SeqListCheckCapacity(psl);//尾插前先检查一下容量(包括扩容) psl->a[psl->size] =..., SLDataType x) { assert(psl); /*SeqListCheckCapacity(psl); psl->a[psl->size] = x; psl->size++;...* psl) { assert(psl); //psl->a[psl->size - 1] = 0; /*if (psl->size > 0) { psl->size--; }*/ SeqListErase
void SeqListInit(SeqList* psl) { assert(psl); psl->a = NULL; psl->size = 0; psl->capacity = 0; }...void CheckCapacity(SeqList* psl) { assert(psl); if (psl->size == psl->capacity) { int newcapacity...void SeqListPushFront(SeqList* psl, SLDataType x) { assert(psl); CheckCapacity(psl); int end = psl...->size - 1; for (int i = end; i >= 0; i--) { psl->a[i + 1] = psl->a[i]; } psl->a[0] = x; psl->...void SeqListDestory(SeqList* psl) { assert(psl); if (psl->a !
(SeqList* psl)//顺序表销毁 { assert(psl);//assert断言 free(psl->arry);//使用动态内存函数后记得要用free释放空间 psl->arry =...for循环逐一打印即可; void SeqListPrint(SeqList* psl) { assert(psl); for (int i = 0; i psl->size; i++) {..., SLDataType x) { assert(psl);//断言 CheckCapacity(psl);//检查容量 psl->arry[psl->size] = x; psl->size+...; i--)//顺序表整体向后移 { psl->arry[i + 1] = psl->arry[i]; } psl->size++; //顺序表个数+1 psl->arry[0] = x;...{ assert(psl);//断言 for (int i = pos + 1; i psl->size; i++)//pos之后下标-1 { psl->arry[i - 1] = psl
); void SLInit(SL* psl)//顺序表初始化 { assert(psl);//断言,传入的指针不能为空,报错:显示错误行号,规避错误 psl->a = NULL; psl->size...= 0; psl->capacity = 0; } void SLDestroy(SL* psl)//销毁 { assert(psl); if (psl->a !...,不够就扩容 { assert(psl); if (psl->size == psl->capacity) { int newCapacity = psl->capacity == 0 ?...psl); SLCheckCapacity(psl); psl->a[psl->size] = x; psl->size++; } void SLPushFront(SL* psl, SLDataType...{ psl->a[end + 1] = psl->a[end]; --end; } psl->a[0] = x; psl->size++; } void SLPopBack(SL*
0; } 2.3.2 -> 销毁 // 顺序表销毁 void SLDestroy(SL* psl) { free(psl->a); psl->a = NULL; psl->capacity =...0; psl->size = 0; } 2.3.3 -> 检查 // 顺序表检查,满则增容 void SLCheckCapacity(SL* psl) { if (psl->size == psl-...{ SLCheckCapacity(psl); psl->a[psl->size++] = x; //复用 //SLInsert(psl, psl->size - 1, x); } // 尾插测试...) { assert(psl->size > 0); int start = 1; while (psl->a[start] psl->size) { psl->a[start - 1...psl->size = 0; } // 顺序表销毁 void SLDestroy(SL* psl) { free(psl->a); psl->a = NULL; psl->capacity
return; } while (psl->next)//如果已经有节点的情况 { psl = psl->next;//通过next遍历链表找到最后的节点 } psl->next =...return; } while (psl->next->next)//多个节点时找到倒数第二个节点 { psl = psl->next; } free(psl->next); psl->...) { if (psl->data == x) { return psl;//找到了返回psl } psl = psl->next; } return NULL;//没找到返回空指针...(psl->next !...= pos)//多个节点 { psl = psl->next; } //此时psl->next = pos; psl->next = pos->next;将pos位置指向的下一个节点指针赋给
(psl); psl->a = (SQDataType*)malloc(sizeof(SQDataType) * 4); // 初始容量4 psl->size = 0; psl-...>capacity = 4; } void CheckCapacity(SeqList* psl) { if (psl->size == psl->capacity) { int...; CheckCapacity(psl); // 先检查是否要扩容 psl->a[psl->size] = x; psl->size++; } void SeqListErase...for (int i = pos; i psl->size - 1; i++) { psl->a[i] = psl->a[i + 1]; } psl->size...* psl) { free(psl->a); psl->a = NULL; psl->size = psl->capacity = 0; } Step 4:通讯录业务逻辑(contact.c
弱监督语义分割算法|AE-PSL算法对抗性擦除最具有判别性区域 这是一篇有趣的弱监督语义分割算法,最有趣的在什么地方呢?...Online prohibitive segmentation learning (PSL) 由于在生成的segmentation mask中包含了一些噪声区域和未被标注的区域,为了更加有效地训练,论文提出了一种...PSL(Prohibitive Segmentation Learning)方法训练语义分割网络。...由于图像级的多标签分类往往具有较高的准确性,PSL方法可以利用分类信息来抑制分割图中的true negative区域。
自定义别名 set-alias -name pad -value notepad # 设置临时别名,将notepad赋给pad别名 del alias:pad # 删除别名 export-alias 1.psl...# 导出别名 import-alias -force 1.psl # 强制导入别名 PowerShell变量基础 等于号赋值 $name="xx" 特殊变量名称用花括号包围 ${"asdsad asdsd...num1 PowerShell自动化变量 常用的变量 $pid $home PowerShell环境变量 ls env: # 查看当前环境变量 $env:os # 输出某个键的值 $env:0s="Linux...CommonParameters>] set-executionpolicy RemoteSigned # 设置可以运行的策略 PowerShell与其他脚本程序的互相调用 powershell直接可以执行bat、vbs、psl
= NULL);//断言 psl->a = NULL; //初始顺序表为空 psl->size = 0; //初始数据个数为0 psl->capacity = 0;...psl->size; i++) //顺序表中[1,size-1]的元素依次向前挪动一位 { psl->a[i - 1] = psl->a[i]; } psl->...psl->size; i++) //顺序表中[1,size-1]的元素依次向前挪动一位 { psl->a[i - 1] = psl->a[i]; } psl->...在顺序表中删除指定下标位置的数据 void SeqListErase(SeqList* psl, size_t pos) { assert(psl); assert(psl->size...(i = pos + 1; i psl->size; i++) //将pos位置后面的数据依次向前挪动一位 { psl->a[i - 1] = psl->a[i];
2 FAQ 1、木兰宽松许可证,第1版(Mulan PSL v1)的主要特点是什么?...*图表:第1版(Mulan PSL v1)与业界主流许可证的主要异同 3、木兰宽松许可证,第1版(Mulan PSL v1)与业界主流许可证兼容情况如何? 许可证的兼容性评判并无统一标准。...我们从Mulan PSL v1的条款及目的出发,认为Mulan PSL v1与BSD类许可证类似,兼容性很好。...BSD、MIT类宽松许可证兼容Mulan PSL v1许可证;Mulan PSL v1兼容Apache License v2.0、L/GPLv2、L/GPLv3等许可证。...即,许可在BSD、MIT类许可证下的代码可以贡献到Mulan PSL v1的项目中,许可在Mulan PSL v1下的代码可以贡献到Apache License V2.0、L/GPLv2或L/GPLv3