git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15cgit-subtree-split:24f5a642afChange-Id: I6105b3762b79126b3488359c95978cadb3efa789
		
			
				
	
	
		
			35 lines
		
	
	
	
		
			771 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			771 B
		
	
	
	
		
			Python
		
	
	
	
	
	
import re
 | 
						|
 | 
						|
start = 134792
 | 
						|
end = 675810
 | 
						|
 | 
						|
 | 
						|
def satisfies(x):
 | 
						|
    x = str(x)
 | 
						|
    result = False
 | 
						|
    double, not_decreasing = False, False
 | 
						|
 | 
						|
    # double and *only* double exists
 | 
						|
    for i in range(len(x) - 1):
 | 
						|
        # double and left-of-a  is BOL or !x
 | 
						|
        #        and right-of-b is EOL or !x
 | 
						|
        a, b = x[i], x[i + 1]
 | 
						|
        bol = i - 1 < 0
 | 
						|
        eol = i + 2 >= len(x)
 | 
						|
        if a == b and (bol or x[i - 1] != a) and (eol or x[i + 2] != a):
 | 
						|
            double = True
 | 
						|
            break
 | 
						|
 | 
						|
    # not_decreasing
 | 
						|
    prev = int(x[0])
 | 
						|
    for a in x[1:]:
 | 
						|
        a = int(a)
 | 
						|
        if prev > a:
 | 
						|
            return False
 | 
						|
        prev = a
 | 
						|
    not_decreasing = True
 | 
						|
 | 
						|
    return double and not_decreasing
 | 
						|
 | 
						|
 | 
						|
print(len([x for x in range(start, end + 1) if satisfies(x)]))
 |