from common import small_example, big_example, read_dataset, write_result from eulerian_cycle import eulerian_path if __name__ == '__main__': dataset, _ = small_example() dataset = read_dataset() adjlist = { words[0]: set(words[1].split(',')) for words in (l.split(' -> ') for l in dataset) } print(adjlist) path = eulerian_path(adjlist) output = ''.join(kmer[0] for kmer in path) + path[-1][1:] write_result(output)
j += len(w) - len(ww) print((i, j)) #, block, w[j:j + k]) count += 1 ww = w[j + 1:] else: break #block = cv[i:i + k] #if block in w: # print((i, w.find(block))) # print(count) if __name__ == '__main__': inp, out = small_example() #inp, out = big_example() inp = read_dataset() k = int(inp[0]) v = Seq(inp[1]) w = Seq(inp[2]) #with open('example_result.txt') as f: # print(len(f.readlines())) #with open('ex_res.txt', 'w') as f2: # with open('example_result.txt') as f: # vs = sorted(tuple(map(int, l.strip()[1:-1].split(', '))) # for l in f.readlines()) # for a, b in vs: # f2.write(str((a, b)) + ' ' + str(v[a:a + k]) + ' ' + str(w[b:b + k]) + '\n')
from common import small_example, big_example, read_dataset, write_result def change(money, coins): min_change = [[] for _ in range(max(coins))] min_nums = [0] * max(coins) for sum in range(min(coins), money + 1): min_sum, min_c = min( (min_nums[(sum - c) % max(coins)], c) for c in coins if c <= sum) min_nums[sum % max(coins)] = min_sum + 1 min_change[sum % max(coins)] = min_change[(sum - min_c) % max(coins)] + [min_c] print(min_nums) print(min_change) return min_nums[money % sum], min_change[money % sum] if __name__ == '__main__': input, output = small_example() input = read_dataset() print(change(int(input[0]), list(map(int, input[1].split(',')))))
backtrack[0][0] = '*' for i, vi in zip(count(), v): for j, wj in zip(count(), w): s[i + 1][j + 1] = max(s[i][j + 1], s[i + 1][j]) if vi == wj: s[i + 1][j + 1] = max(s[i + 1][j + 1], s[i][j] + 1) if s[i + 1][j + 1] == s[i][j + 1]: backtrack[i + 1][j + 1] = '|' elif s[i + 1][j + 1] == s[i + 1][j]: backtrack[i + 1][j + 1] = '-' elif s[i + 1][j + 1] == s[i][j] + 1: backtrack[i + 1][j + 1] = '\\' #for l in s: # print(l) return s[len(v)][len(w)], backtrack inp, out = small_example() #inp = read_dataset() #print(inp) v, w = inp[0], inp[1] score = inp[2:] #v, w = 'AC', 'ACA' l, backtrack = lcs(v, w) print(l) #for l in backtrack: # print(' '.join(l)) output_lcs(backtrack, v, len(v), len(w)) #print(out)
from common import small_example, big_example, read_dataset, write_result def change(money, coins): min_change = [[] for _ in range(max(coins))] min_nums = [0] * max(coins) for sum in range(min(coins), money + 1): min_sum, min_c = min((min_nums[(sum - c) % max(coins)], c) for c in coins if c <= sum) min_nums[sum % max(coins)] = min_sum + 1 min_change[sum % max(coins)] = min_change[(sum - min_c) % max(coins)] + [min_c] print(min_nums) print(min_change) return min_nums[money % sum], min_change[money % sum] if __name__ == "__main__": input, output = small_example() input = read_dataset() print(change(int(input[0]), list(map(int, input[1].split(",")))))
from common import small_example, big_example, read_dataset, write_result from eulerian_cycle import eulerian_path if __name__ == '__main__': dataset, _ = small_example() dataset = read_dataset() adjlist = {words[0]: set(words[1].split(',')) for words in (l.split(' -> ') for l in dataset)} print(adjlist) path = eulerian_path(adjlist) output = ''.join(kmer[0] for kmer in path) + path[-1][1:] write_result(output)