The Python Challenge Level 0-1 Solutions
前两天听说了有The Python Chanllenge这么一个游戏,于是自己也想来尝试一下。感觉还是一个挺有意思的。
附上我在Github上存放的代码仓库: The Python Challenge
Challenge 0
第0关只是一个让你大概清楚怎么玩的一个关卡,只要按照图片上的意思,计算2的38次方即可。这个就无所谓是用Python还是别的什么方式来计算了,能够得到结果就行,所以代码就不贴出来了。
算出结果之后,将结果复制到网页的url栏,将.html前面的单词替换掉就好
Challenge 1
根据图片给的提示我们可以发现,从K到M,O到Q,以及E到G,都是把单词给推后了两个。所以,我们只需要把他底下给我们的一大串字符串给统一推后两个字母就行了。另外要注意y要对应a,z则对应b。下面是我的初版代码:
1234567891011121314151617181920#! /usr/bin/env python3# -*- coding: utf-8 -*-code = ("g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr ...
The Python Challenge Level-2 Solution
先附上我在Github上存放的代码仓库: The Python Challenge
The Python Challenge第二关给了我们一张书的图片,但是十分模糊的,什么都看不清,这个时候,我们看看它给我们的文字提示是
MAYBE they are in the page source.
这个时候我们点击鼠标右键,查看网页的源代码,会发现,果然有一大长条乱七八糟的符号。不难猜到,我们所需要的下一关的url就藏在这堆符号里。于是我们用简单的爬虫爬取网页代码,然后利用正则表达式来捕捉我们需要的字母。
1234567891011121314151617181920#! /usr/bin/env python3# -*- coding: utf-8 -*-__author__ = 'Yuuki_Dach'from urllib import requestimport repyUrl = "http://www.pythonchallenge.com/pc/def/ocr.html"req = request.Request(pyUrl)resq ...
The Python Challenge Level-4 Solution
先附上我在Github上存放的代码仓库: The Python Challenge
依然是先查看网页源代码。发现有个链接’…nothing=12345’
点进去之后发现又给我们一个数字,引导我们去下一个链接,于是可以知道,只要链接爬到了终点,那么就会出现别的提示信息
果然,爬到终点之后,提示我们除以二,继续爬,所以只要把代码改个数字就好,我的代码如下:
12345678910111213141516171819202122#!/usr/bin/env python3# -*- coding: utf-8 -*-__author__ = 'Yuuki_Dach'from urllib import requestimport remainUrl = 'http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing='subUrl = '8022' # first try is '12345'subUrl2 = ''i = 400wh ...
The Python Challenge Level-5 Solution
先附上我在Github上存放的代码仓库: The Python Challenge
先看提示:
1pronounce it
再看看网页源码,'peak hell’能代表什么?
我一开始以为是’pick’什么东西,点开’banner.p’之后没发现什么规律,于是先google了一下’peak hell’,发现了Python有pickle这么一个模块,那么就必然和这个有关系了。
pickle这个模块是python用来保存数据的,主要是loads和dumps方法的运用(这两个是对内存进行操作,如果要对硬盘进行操作,形成文件等形式,就是用load和dump),一个是读,一个是写,这里因为是直接从网页中获取数据,所以只要读就行了。
读完能发现这实际上是一个list组,再仔细点观察的话,就会注意到每一个[]中,把’ ‘和’#'后跟着的数字加起来,恰好是95。于是可以估计,这应该是利用点阵的方式来进行显示,而点阵的一行,有95个字符。这样就有了如下代码:
123456789101112131415161718#! /usr/bin/env python3# -*- coding: utf-8 -*- ...
The Python Challenge Level-3 Solution
先附上我在Github上存放的代码仓库: The Python Challenge
这里按照题目意思,利用正则匹配,找到恰好分别被三个大写字母包在左右的小写字母就好
1234567891011121314151617#! /usr/bin/env python3# -*- coding: utf-8 -*-__author__ = 'Yuuki_Dach'from urllib import requestimport repyUrl = 'http://www.pythonchallenge.com/pc/def/equality.html'req = request.Request(pyUrl)resp = request.urlopen(req)urlContent = resp.read()pattern = re.compile(b'[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]', re.S)contents = re.findall(pattern, ...
The Python Challenge Level-6 Solution
先附上我在Github上存放的代码仓库: The Python Challenge
这道题目开始让人很迷茫了(至少我是这样),先点开网页源码,没发现什么有价值等东西,然后又看看图片,发现右上角有个箭头,指着几个数字3,于是照着填进去了,发现没有链接,于是又跑去看源码,终于在开头发现了这个:
1<!-- <-- zip -->
于是将’.html’替换成’.zip’,居然下载下来了一个压缩包,点开之后会发现有一个readme.txt,再继续点开,内容如下:
1234welcome to my zipped list.hint1: start from 90052hint2: answer is inside the zip
很明显,和前几题一样,就是按照90052这个数字找下去了,不过这次找的不是网页,而是文件。这里我们用zipfile这个模块来完成我们的需求
1234567891011121314151617#! /usr/bin/env python3# -*- coding: utf-8 -*-__author__ = 'Yuuki_Dach' ...
UVa OJ 1609 - Foul Play
Problem
n支队伍(2≤n≤1024,且n是2的整数幂)打淘汰赛,每轮都是两两配对,胜者进入下一轮。每支队伍的实力固定,并且已知每两支队伍之间的一场比赛结果。你喜欢1号队。虽然它不一定是最强的,但是它可以直接打败其他队伍中的至少一半,并且对于每支1号队不能直接打败的队伍t,总是存在一支1号队能直接打败的队伍t’使得t’能直接打败t。问:是否存在一种比赛安排,使得1号队夺冠?
Input
For each test case, the input is as follows:
One line containing the number of teams n, where n is a power of two and 2 ≤ n ≤ 1024. Teams are numbered from 1 to n, where team 1 is your favourite team.
n lines, each containing a string of n binary digits.
The k-th digit on the j-th line is ‘1’ if t ...
Ubuntu下使用Python3
这篇文章算是给初次在Ubuntu上使用Python编程的人一个提醒吧。
使用方法
首先我们要知道Ubuntu自带的是Python2,然而有很多人(比如我)在学习Python的时候希望使用Python3
我们先使用
1sudo apt install python3
老版本Ubuntu请将 ‘apt’ 改为 ‘apt-get’
安装好了Python3之后,我们想在终端中直接使用Python3,可是当我们输入 'python’之后,却发现还是Python2。这个时候其实很简单,只要在 'python’后面加个 ‘3’ 就好,具体如下:
1python3 cmd
cmd 是你自己的指令。这个时候我们就是使用Python3了
Warning!!!
不过我要说的不只是这些,而是这篇文章:在Ubuntu中安装Python3
不推荐大家采用文章里的方式
这篇文章开头写的很好,告诉我们Ubuntu很多底层采用的是Python2,当时后面居然让我们把link文件改掉。这样会导致Ubuntu的系统出现一些错误,比如安装软件失败。所以大家还是直接使用 ‘python3’ 这个命令就好,不要自找麻烦。
Ubuntu以太网已断开的解决办法
有部分人在使用Ubuntu的时候可能会遇到和我一样的问题,就是以太网显示已断开,这面原因有很多,但是大多都是驱动问题。网上也有教程,亲测以后发现有些地方并不适用,这里我们就来谈谈这个问题。
我的Ubuntu版本是16.04 LTS, 有线网卡是Realtek的
装完系统以后以太网显示已断开,但是如果编辑连接的话,可以发现,其实是一直在使用的。真正原因,是网卡驱动不兼容的问题。Ubuntu自带的是r8169,而我需要的是r8168。因此,我们只需要安装上r8168就好了。
但是网上虽然有比较好的教程,但是有一些瑕疵,不通用,有人会说自己找不到r8169.ko这个文件并删除。实际上,我们应该用find指令去找我们所需要的文件的位置,而不是完全照搬那些解决方法。
下面开始谈谈解决方式:
下载驱动并解压好
去Realtek官网下载好r8168的驱动: 下载连接
获取root权限
1sudo su
删除r8169模块
12rmmod r8169mv /'-yourFile'/r8169.ko ~/r8169.ko.backup
将'-yourFile'替换成具 ...
UVa OJ 1608 - Non-boring sequences
Problem
A sequence is called non-boring if its every connected subsequence contains a unique element, i.e. an element such that no other element of that subsequence has the same value.
Given a sequence of integers, decide whether it is non-boring.
Input
The first line of the input contains the number of test cases T. The descriptions of the test cases follow:
Each test case starts with an integer n (1 ≤ n ≤ 200000) denoting the length of the sequence. In the next line the n elements of the s ...