view arrays/word_count/wc.py @ 0:20fea762903e

Import some exercises and solutions
author Louis Opter <kalessin@kalessin.fr>
date Sat, 29 Jun 2013 19:30:31 -0700
parents
children
line wrap: on
line source

#!/usr/bin/env python

def wc(buf):
    word_count = 0
    line_count = 0
    i = 1
    n = len(buf)

    while i < n and buf[i].isspace():
        if buf[i] == "\n":
            line_count += 1
        i += 1
    while i < n - 1:
        if not buf[i - 1].isspace() and buf[i].isspace():
            word_count += 1
            while i < n - 1 and buf[i].isspace():
                if buf[i] == "\n":
                    line_count += 1
                i += 1
        else:
            i += 1
    if not buf[i].isspace():
        word_count += 1

    return word_count, line_count

s1 = "rhje rhesr    jrelskj   "
s2 = "fjesl\n ffjesl  jfes  \n\nfjles fls\n \n"
s3 = " fjeksl fjkels ff"

print("wc({0}) = {1}".format(s1, wc(s1)))
print("wc({0}) = {1}".format(s3, wc(s3)))
print("wc({0}) = {1}".format(s2.replace("\n", "\\n"), wc(s2)))