`

python tiny_uri

阅读更多
基于26个字母的tiny_uri   , 类似sina t.cn 功能

#coding=utf-8
import os, sys
import string
import random
import re

Dict = string.ascii_lowercase
MAXLEN = len(Dict)

def tiny_uri(uri="t.cn/zzzz", domain="t.cn"):
	"""tiny uri base on ascii_lowercase carry"""

	macth = re.match(r"%s/(.+)" % domain, uri)
	macths = macth.groups(0)
	if macths:
		uri = macths[0]
	else:
		return None

	loop_index = 0
	carry = 0

	stack = []
	for i in reversed(uri):
		stack.append(i)

	for u in stack:
		index = Dict.find(u)
		if index < 0:
			continue

		if index >= (MAXLEN - 1):
			#carry bit
			stack[loop_index] = Dict[0]
			carry = 1
		else:
			#add on bit
			stack[loop_index] = Dict[index + 1]
			carry = 0
			break

		loop_index += 1

	if carry > 0:
		stack.append(Dict[0])

	return "".join(stack)[::-1]

if __name__ == "__main__":
	#test
	for i in xrange(100):
		uri = Dict[random.randint(0, MAXLEN - 1)]
		print " * " * 20
		print "before uri:", uri
		result = tiny_uri("t.cn/%s" % uri)
		print "after uri:", result
		assert uri != result

	print
	print "result:", tiny_uri("t.cn/ccaad")






*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * 
befor uri: r
after uri: s

result: ccaae


分享到:
评论

相关推荐

    彻底解决tiny_mce_wiris公式插件加载慢的问题

    tiny_mce_wiris原因分析: 1. tiny_mec是富文本编辑器,但原生不支持公式插件 2. wiris是公式插件能支持各种富文本编辑器,但他是半开源的,要使用他的插件 ,必须依赖于wiris云端服务器,意思是如果项目没有网络则...

    swin_tiny_patch4_window7_224.pth

    标题中的"swin_tiny_patch4_window7_224.pth"是一个预训练模型的权重文件,这在深度学习领域非常常见。Swin Transformer是近年来提出的一种基于Transformer架构的新型卷积神经网络(CNN),由卢卡斯·吴(Liang-...

    tiny_tty_kernel_2.6.32

    《Linux设备驱动开发详解——基于2.6.32内核的tiny_tty模块解析》 在Linux系统中,TTY(Teletype)是字符型终端设备的抽象,它为用户提供了与操作系统交互的文本界面。Linux Device Driver Development (LDD3) 是一...

    Python库 | tiny_gnupg-0.5.3-py3-none-any.whl

    在这个场景中,我们关注的是一个名为"tiny_gnupg"的Python库,版本为0.5.3,它以".whl"格式提供。".whl"文件是Python的预编译二进制包,使得用户可以方便快捷地安装库,而无需进行编译过程。 tiny_gnupg库是Python...

    Big_data,_Tiny_Code_《Tiny_Code》电子期刊_Moved_to_githu_tinycode.zip

    Big_data,_Tiny_Code_《Tiny_Code》电子期刊_Moved_to_githu_tinycode

    Tiny_Faces_in_Tensorflow.zip

    本项目"Tiny_Faces_in_Tensorflow.zip"聚焦于极小且众多的人脸及人头检测,尤其适用于处理自然环境中的多目标、远近不一的面部识别任务,如车站、商场等公共区域的人头计数。 首先,我们要理解TensorFlow是一个强大...

    Django的富文本框中tiny_mce需要的js文件

    ```python STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), '/path/to/tinymce/', ] ``` 接着,需要在HTML模板中引用TinyMCE的JavaScript文件。这通常在`&lt;head&gt;`部分完成,确保在其他依赖它的脚本之前...

    Tiny_JLINK.rar

    《Tiny_JLINK——微型调试工具的探索》 Tiny_JLINK,这个名字可能对于许多电子工程师来说并不陌生,它是一款小巧而强大的嵌入式调试工具。在本文中,我们将深入探讨Tiny_JLINK及其相关技术,了解其在开发过程中的...

    tiny_tty_kernel_3.12.74

    《LINUX设备驱动程式》第三版中的tiny_tty模块是一个简化的串行终端驱动程序,主要用作教学和理解Linux内核中TTY(Teletype)子系统的运作原理。在这个项目中,tiny_tty模块已经根据linux_3.12.74内核版本进行了修正...

    更改DPI小工具tiny_ppi_editor

    所以DPI会很高,但同时业务员需要在一些聊天软件发一些正常DPI的小图广告,但是手头上又没有PS这样的图片编辑软件,这时你就需要一款快速更改DPI的小工具就是这款tiny_ppi_editor,非常的实用。

    Tiny_C_Complier.rar_Tiny_C_Complier_tiny _tiny c++_编译原理_课程设计

    《Tiny C Compiler的实现与编译原理探索》 在编程世界中,编译器起着至关重要的作用,它将人类可读的高级语言转化为机器可执行的指令。本项目聚焦于 Tiny C Compiler(TCC),一个小型且高效的C语言编译器,用于...

    tiny_yolov1_voc

    《基于tiny_yolov1的VOC2007目标检测实践详解》 在计算机视觉领域,目标检测是一项核心任务,旨在识别并定位图像中的特定对象。本篇将深入探讨如何利用Keras库中的tiny_yolov1模型,对PASCAL VOC2007数据集进行高效...

    yolov3-tiny_wk_caffemodel_prototxt_cfg_weights.rar

    包含官方提供的yolov3-tiny.weights和yolov3-tiny.cfg文件,通过datknet2caffe转换得到的yolov3-tiny.caffemodel和yolov3-tiny.prototxt文件,通过RuyiStudio转换得到的inst_yolov3-tiny_inst_YVU420sp.wk文件,亲测...

    Tiny_cnn训练数据

    Tiny_cnn训练数据是针对深度学习领域中的 Tiny_cnn 模型所使用的特定数据集,主要目的是为了训练和测试模型的性能。Tiny_cnn 是一个轻量级的卷积神经网络(CNN)框架,设计用于在资源有限的环境中运行,如嵌入式设备...

    PyPI 官网下载 | aio_tiny_healthcheck-1.1.2.tar.gz

    《PyPI官网下载 | aio_tiny_healthcheck-1.1.2.tar.gz——Python异步健康检查库解析》 PyPI(Python Package Index)是Python社区的重要资源库,它为开发者提供了一个平台来分享和下载各种Python软件包。在本篇文章...

    Tiny_yolov1卡车位置_目标检测

    综上所述, Tiny_YOLOV1卡车位置_目标检测项目利用了北理工提供的卡车位置数据集,结合Python和Keras库训练了一个高效的检测模型,该模型在检测卡车位置方面表现出高精度。在实际应用中,这样的系统可以用于交通监控...

    tiny_usb_office

    【tiny_usb_office】是一个专注于USB相关的轻量级项目,它主要设计用于在办公环境中实现USB设备的高效管理和应用。此项目可能包含了一系列针对USB设备优化的库、驱动程序、工具和文档,旨在简化USB设备在办公环境中...

    Tiny_cnn训练数据集

    Tiny_cnn训练数据集是深度学习领域中一个专门为小巧型卷积神经网络(Tiny Convolutional Neural Networks,Tiny_cnn)设计的训练资源。在构建和优化轻量级模型时,这种数据集对于测试和训练至关重要,特别是对于资源...

Global site tag (gtag.js) - Google Analytics