author | Eugen Sawin <sawine@me73.com> |
Tue, 19 Jul 2011 15:25:16 +0200 | |
changeset 15 | a703c0e88e47 |
permissions | -rw-r--r-- |
sawine@0 | 1 |
""" |
sawine@0 | 2 |
Name: string_hash - a string hashing program |
sawine@0 | 3 |
Description: Basic string hashing program according to Theory I lecture. |
sawine@0 | 4 |
Author: Eugen Sawin <sawine@informatik.uni-freiburg.de> |
sawine@0 | 5 |
""" |
sawine@0 | 6 |
|
sawine@0 | 7 |
def main(): |
sawine@0 | 8 |
args = parse_arguments() |
sawine@0 | 9 |
for string in args.strings.split(): |
sawine@0 | 10 |
print "%s: %i" % (string, hash(string, args.m)) |
sawine@0 | 11 |
|
sawine@0 | 12 |
def hash(string, m): |
sawine@0 | 13 |
return sum(map(ord, string)) % m |
sawine@0 | 14 |
|
sawine@0 | 15 |
from argparse import ArgumentParser |
sawine@0 | 16 |
|
sawine@0 | 17 |
def parse_arguments(): |
sawine@0 | 18 |
parser = ArgumentParser(description="Returns the hash for given string and m.") |
sawine@0 | 19 |
parser.add_argument("strings", help="strings") |
sawine@0 | 20 |
parser.add_argument("m", type=int, help="m value") |
sawine@0 | 21 |
return parser.parse_args() |
sawine@0 | 22 |
|
sawine@0 | 23 |
if __name__ == "__main__": |
sawine@0 | 24 |
main() |