John
BAN USERPython version
# -*- coding: utf-8 -*-
"""
Created on Sun Nov 25 19:45:26 2012
@author: qzhang
"""
DEBUG = 0
def IsAggregatedNumber(number):
global DEBUG
num_str = str(number)
length = len(num_str)
if DEBUG == 1:
print "length is",length
for i in range(1,length/2+1):
for j in range(1,length/2+1):
if match(i,j,num_str):
return True
return False
def match(i,j,num_str):
global DEBUG
first = num_str[:i]
second = num_str[i:i+j]
buff = ""
buff =buff +first
buff =buff +second
while len(buff) < len(num_str):
if DEBUG ==1:
print "first ", first
print "second ", second
third = str(int(first) + int(second))
if DEBUG ==1:
print "third ", third
buff =buff +third
first = second
second = third
if(cmp(buff,num_str) == 0):
return True
else:
return False
if __name__ == "__main__":
print IsAggregatedNumber(112358)
print IsAggregatedNumber(1224)
print IsAggregatedNumber(1299111210)
print IsAggregatedNumber(112112224)
Python version
# -*- coding: utf-8 -*-
"""
Created on Sun Nov 25 18:12:14 2012
@author: qzhang
"""
class MyIterator:
def __init__(self,array):
self.array = array
self.currPos = 0
self.size = len(array)
self.negPos = 0
def hasNext(self):
for i in range(self.currPos +1,self.size,1):
if(self.array[i] <0):
if(self.negPos != i):
self.negPos = i
return True
return False
def next(self):
if(self.hasNext()):
self.currPos = self.negPos;
return self.array[self.currPos]
return
if __name__ == "__main__":
array = [1,2,4]
iter1 = MyIterator(array)
print iter1.hasNext()
print iter1.next();
Python version. I use brute force way it is O(n^3) but it is sure the answer is right, getijk.
For getijk2. I use a algorithm
- John November 28, 2012