Python字符串的插入操作
传送门:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=3448
时间限制(普通/Java):1000MS/3000MS 内存限制:65536KByte
描述
给定用等号连接的两个整数,如“1234=127”。
问能否在左边的整数中间某个位置插入一个加号使得等号成立。比如:
123+4=127
请你编写一个程序实现。
输入
输入占一行,即用等号连接的两个整数
已知,等号两边的整数都不会超过2000000000。
输出
如果存在这样的方案,请输出那个正确的式子。不含任何空格字符。
否则输出:
Impossible!
数据保证最多只有一种方案。
样例输入
1234=127
样例输出
123+4=127
思路:这题如果用C写,循环遍历过去分割字符串,然后字符串转整数相加一下,遍历过去就行了。
然而,这题拿来是练习一下Python的插入字符串的操作的。因为Python中str没有insert函数,所以只能自己写啦
def
insert(original, new, pos):
'''Inserts new inside original at pos.'''
return
original[:pos]
+
new
+
original[pos:]
引自:http://twigstechtips.blogspot.com/2010/02/python-insert-string-into-another.html
大概就是上面这样!
然后再用eval函数把加上加号的字符串转成值判断一下就好了!最后注意如果遍历完了还没有,就得输出“Impossible!”
代码:
while True: try: n,m = input().split("=") flag = 0 for i in range(1,len(n)): k = n[:i] + '+' + n[i:] if(int(eval(k)) == int(m)): print("%s=%s"%(k,m)) flag = 1 if flag == 0: print("Impossible!") except EOFError: break