第一题:字符串距离

题目:

给出两个相同长度的由字符 a 和 b 构成的字符串,定义它们的距离为对应位置不同的字符的数量。如串”aab”与串”aba”的距离为 2;串”ba”与串”aa”的距离为 1;串”baa”和串”baa”的距离为 0。下面给出两个字符串 S 与 T,其中 S 的长度不小于 T 的长度。我们用|S|代表 S 的长度,|T|代表 T 的长度,那么在 S 中一共有|S|-|T|+1 个与T长度相同的子串,现在你需要计算 T 串与这些|S|-|T|+1 个子串的距离的和。

输入描述:

第一行包含一个字符串 S。第二行包含一个字符串 TS 和 T 均由字符 a 和 b 组成,1 ≤ |T| ≤ |S| ≤105 。

输出描述:

输出对应的答案。

样例:

in:
aab
aba
out:
2
in:
aaabb
bab
out:
5
#-*- coding:utf-8 -*-

'''
思路:字符串T在S下每次移动一次,进行比较
'''
class Lenth: def __init__(self,S,T):
self.s=S
self.t=T
'''
len_s:字符串S长度
len_t:字符串T长度
num:存储最后结果
'''
def Fun(self):
len_s=len(self.s)
len_t=len(self.t)
num=0
for i in range(len_s-len_t+1):#字符串移动次数
for k in range(0, len_t):#同等字符串比较
if self.s[i:len_t + i]==self.t:
break
if self.s[k+i] != self.t[k]:
num+=1
return num S=raw_input()
T=raw_input()
print Lenth(S,T).Fun()

第二题:数字字符

题目:

在十进制表示中,任意一个正整数都可以用字符‘0’-‘9’表示出来。但是当‘0’-‘9’这些字符每种字符的数量有限时,可能有些正整数就无法表示出来了。比如你有两个‘1’,一个‘2’ ,那么你能表示出 11,12,121 等等,但是无法表示出 10,122,200 等数。 
  
现在你手上拥有一些字符,它们都是‘0’-‘9’的字符。你可以选出其中一些字符然后将它们组合成一个数字,那么你所无法组成的最小的正整数是多少?

输入描述:

第一行包含一个由字符’0’-‘9’组成的字符串,表示你可以使用的字符。1 ≤ 字符串长度 ≤ 1000

输出描述:

输出你所无法组成的最小正整数。

样例:

in:
55
out:
1
in:
123456789
out:
10
#-*- coding:utf-8 -*-

'''
本题思路,将0和123456789分开考虑,本题结果只可能为:10~10....、1~11....、2~22......
''' class Min_num:
'''
input_list:输入的字符串
i:记录1~9在字符串中的一起出现的次数
'''
def __init__(self,input_list):
self.input_list=input_list
self.i=0 def min(self):
'''
j:用于记录0出现在字符串的次数,
while循环计算0出现的次数,同时提出字符串中的0
'''
j=0
while True:
if 0 in self.input_list:
self.input_list.remove(0)
j+=1
else:
break i_first=self.get_list()
if j>=0 and self.i==0:#当输入的字符串中有0,但是1~9并不都存在
return i_first
elif j>=0 and self.i>j:#当存在1~9的字符串的次数多余0的次数
return ''+(j+1)*''
elif j>=0 and self.i!=0:#当存在0的次数多余1~9的字符串的次数
return str(i_first)*(self.i+1) '''
get_list:用于计算1~9在输入字符串中同时出现的次数,
返回第一次不出现在字符串中的数,同时记录1~9出现的
次数
'''
def get_list(self):
l=[1,2,3,4,5,6,7,8,9]
for i in l:
if i in self.input_list:
self.input_list.remove(i)
else:
return i
self.i+=1
return self.get_list()#递归循环 while True:
s=raw_input()
input_list=[]
for i in s:
input_list.append(int(i))
print Min_num(input_list).min()
 

2018春招-美团后台开发方向编程题 (python实现)的更多相关文章

  1. 2018春招-今日头条笔试题-第二题(python)

    题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) 解题思路: 利用深度优先搜索 #-*- coding:utf-8 -*- class DFS: ''' num:用于存储最后执行次 ...

  2. 2018春招-今日头条笔试题-第一题(python)

    题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) 解题思路: 要想得到输入的数字列中存在相隔为k的数,可以将输入的数字加上k,然后判断其在不在输入的数字列中即可. #-*- cod ...

  3. 链家2018春招C/C++开发实习生在线考试编程题

    题目一 题解:该题目意思就是让你输入n组数据,然后求并集,利用STL容器set集合的特性:元素不重复存储,我们可以很轻易得出答案 #include <iostream> #include ...

  4. 2018春招-今日头条笔试题5题(后附大佬答案-c++版)

    1题目描述 在n个元素的数组中,找到差值为k的除重后的数字对 输入描述 第一行:n和k,n表示数字的个数,k表示差值 第二行:n个整数 输入样例 输入: 5 2 1 5 3 4 2 输出: 3 说明: ...

  5. 2018春招-今日头条笔试题-第四题(python)

    题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) #-*- coding:utf-8 -*- class Magic: ''' a:用于存储数组a b:用于存储数组b num:用于 ...

  6. 2018春招-今日头条笔试题-第三题(python)

    题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) 解题思路: 本题的做法最重要的应该是如何拼出‘1234567890’,对于输入表达试获得对应的结果利用python内置函数eval ...

  7. 2018春招实习笔试面试总结(PHP)

    博主双非渣本计算机软件大三狗一枚,眼看着春招就要结束了,现将自己所经历的的整个春招做一个个人总结. 首先就是关于投递计划,博主自己整理了一份各大公司的春招信息,包括网申地址,开始时间,结束时间,以及自 ...

  8. 链家2018春招Java工程师编程题题解

    Light 题目描述 在小红家里面,有n组开关,触摸每个开关,可以使得一组灯泡点亮.现在问你,使用这n组开关,最多能够使得多少个灯泡点亮呢? 输入 第一行一个n,表示有n组开关.接下来n行,每行第一个 ...

  9. 爱奇艺2018春招Java工程师编程题题解

    字典序最大子序列 题目描述 对于字符串a和b,如果移除字符串a中的一些字母(可以全部移除,也可以一个都不移除)就能够得到字符串b我们就称b是a的子序列. 例如."heo"是&quo ...

随机推荐

  1. 优秀前端工程师必备:" checkbox & radio--单钩 & 多钩 "大比较:你是♂||♀ , 还是 ♂&♀

    1 单选: type="radio"  需求: 男女input只能选择一个 <input type="radio" name="sex" ...

  2. UVaLive 3353 Optimal Bus Route Design (最小费用流)

    题意:给定一个 n 个点的有向带权图,让你找若干个圈,使得每个结点恰好属于一个圈,并且总长度尽量小. 析:一开始想的是先缩点,先用DP,来求... 题解给的是最小费用流或者是最佳完全匹配,其实都是一样 ...

  3. UVa 11167 Monkeys in the Emei Mountain (最大流)

    题意:雪雪是一只猴子.它在每天的 2:00 —— 9:00之间非常渴,所以在这个期间它必须喝掉2个单位的水.它可以多次喝水,只要它喝水的总量是2.它从不多喝,在一小时内他只能喝一个单位的水.所以它喝水 ...

  4. UVa 11346 Probability (转化+积分+概率)

    题意:给定a,b,s,在[-a, a]*[-b, b]区域内任取一点p,求以原点(0,0)和p为对角线的长方形面积大于s的概率. 析:应该明白,这个和高中数学的东西差不多,基本就是一个求概率的题,只不 ...

  5. 11.字符串{a,b}的幂集[回溯递归]

    我一直在想着这个事,早晨起来五六点,躺在床上冥想.突然悟解了,真如某些书上写的,大道不过三言两语,说破一文不值.还是按照老方法,把问题最大程度的精简,现在求集合A={a,b}的幂集,只有两个元素,应该 ...

  6. ios判断设备是iphone还是ipad

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...

  7. Tensorflow從源碼編譯

    从源代码构建 从源代码构建 TensorFlow pip 软件包并将其安装在 Ubuntu Linux 和 macOS 上.尽管这些说明可能适用于其他系统,但仅针对 Ubuntu 和 macOS 进行 ...

  8. (线段树 && 字符串的处理)codeforces -- 570C

    链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87813#problem/J Description Daniel has a s ...

  9. Breaseman算法绘制直线算法公式推导|步骤|程序

    Breaseman算法绘制直线算法公式推导|步骤|程序 BreaseMan算法优点: (1)不必计算直线的斜率,因此不用做除法: (2)不用浮点数,只用整数: (3)制作整数的加减乘除,和乘2操作,乘 ...

  10. ASP.NET WEB API 返回JSON 出现2个双引号问题

    前言          在使用ASP.NET WEB API时,我想在某个方法返回JSON格式的数据,于是首先想到的就是手动构建JSON字符串,如:"{\"result\" ...