ModularM
Modular3y ago
2 replies
Sammi Turner

Refactoring from DynamicVector to a different data structure?

I'm currently teaching myself Mojo by porting the solutions to Codewars katas in Python over to the new language.

The "safecracker" problem asks you to write a function that returns a tuple of three integers.

My Python solution used the tuple type. My Mojo solution uses DynamicVector in place of tuple.

There must be a better way to do it than that, surely?

I'm having difficulty with the official docs (skill issue on my part). Suggestions welcome. Help appreciated.

from utils.vector import DynamicVector

fn safecracker(start:Int, incs:DynamicVector[Int]) -> DynamicVector[Int]:
    var vec = DynamicVector[Int](3)
    vec.push_back((start - incs[0]) % 100)
    vec.push_back((vec[0] + incs[1]) % 100)
    vec.push_back((vec[1] - incs[2]) % 100)
    return vec

fn main():
    var vec0 = DynamicVector[Int](3)
    vec0.push_back(54)
    vec0.push_back(48)
    vec0.push_back(77)
    let result = safecracker(96, vec0)
    print(result[0], result[1], result[2])
Was this page helpful?