Sort by

recency

|

340 Discussions

|

  • + 0 comments
    import re 
    
    S = input()
    K = input()
    
    matches = list(re.finditer(f'(?={K})', S))
    
    if not matches:
        print((-1,-1))
    else:
        for match in matches:
            print((match.start(),match.start() + len(K) - 1))
    
  • + 0 comments
    import re
    s = input()
    k = input()
    
    pattern = fr"(?=({k}))"
    matches = re.finditer(pattern, s)
    matches_list = list(matches)
    if matches_list:
        for m in matches_list:
            print((m.start(1), m.end(1)-1))
    else:
        print((-1, -1))
    
  • + 0 comments

    Different approach :

    import re, sys
    
    S = input()
    k = input()
    
    def occurences_indexer(text, target):
        occurences_indexs = []
        initial_text_len = len(text)
    
        while True:
            occurence = re.search(f'{target}', text)  
    
            if occurence != None:
                delta_target_len = (initial_text_len-len(text))
                occurences_indexs.append((occurence.start()+delta_target_len, occurence.end()+delta_target_len-1))
    
                if re.search(f'{target[0]}', target[1:]) != None: #Searchs for occurence stacking
                    text = re.sub(f'{target}', f'{target[1:]}', text, count=1)
                    
                else:
                    text = re.sub(f'{target}', '', text, count=1)
    
                continue
            
            else:
                break
    
            first_search = False
        
        if occurences_indexs == []:
            occurences_indexs.append((-1, -1))
        
        return occurences_indexs
        
    for index_tuple in occurences_indexer(S, k):
        print(index_tuple)
        
    
  • + 0 comments
    import re
    
    full_string = input().strip()
    search_string = input().strip()
    l = []
    i = 0
    while i <= len(full_string):
        string = re.search(search_string , full_string[i:] )
        if(string):
            l.append(tuple([string.start() + i, string.end() - 1 + i]))
            i += int(string.span()[0]) + 1
        else:
            break;
    [print(x) for x in l] if len(l)!=0 else print("(-1, -1)")
    
  • + 0 comments

    import re

    s = input() k = input() pattern = rf"(?=({re.escape(k)}))" if matches := list(re.finditer(pattern, s)):

    for match in matches:
        print((match.start(1),int(match.end(1) - 1)))
    

    else: print((-1, -1))