Problem Statement
We define a "word" to be a maximal sequence of letters ('A'-'Z' and/or 'a-z') within a single line. (Maximal means that if 2 letters are adjacent within a line, they are in the same word.) But if a line ends with a sequence of one or more letters immediately followed by a hyphen ('-') and the next line starts with a sequence of one or more letters, all these letters are considered to be in the same word. It is even possible that a hyphenated word could extend across several lines (see Example 2).
Create a class Hyphenated that contains a method avgLength that is given a
Definition
- Class:
- Hyphenated
- Method:
- avgLength
- Parameters:
- String[]
- Returns:
- double
- Method signature:
- double avgLength(String[] lines)
- (be sure your method is public)
Notes
- A return value with either an absolute or relative error of less than 1.0E-9 is considered correct.
Constraints
- lines will contain between 1 and 50 elements inclusive.
- Each element of lines will contain between 1 and 50 characters inclusive.
- Each character in each element of lines will be a letter ('A-'Z' or 'a'-'z') or will be one of these: ' ', '-', '.'
- At least one element of lines will contain a letter.
Examples
{" now is the ex-", "ample. "}
Returns: 3.75
There are 4 words: now, is, the, example
{" now is the ex-", " ample. "}
Returns: 3.0
There are 5 words: now, is, the, ex, ample Note that the leading blank prevents the joining of ex and ample. Also note that words only consist of letters, so the hyphen is never a part of a word.
{"inter-","national-","ization.."}
Returns: 20.0
There is only one word.
{"All the time I have well-defined "," trouble."}
Returns: 4.125
Note that well-defined consists of 2 separate words.
{"...-","all...some-","thing- "," ","b.i. .g"}
Returns: 3.0
{"a---"," ---","a bc"}
Returns: 1.3333333333333333
{"---","---","a bc"}
Returns: 1.5
{"a-","b--","c.-"}
Returns: 1.5
{"-adssfssfsfsfsfssfsfs-","b--","c-","-"}
Returns: 11.0
{"-a-d-s-sfssfsfsfsfssfsfs-","-b--","c-","-"}
Returns: 3.6666666666666665
{" "," ","a"}
Returns: 1.0
{"here are two-fold meaningsS."}
Returns: 4.6
{"a-","b-","c-","d-","e-","f-"," g-","h."}
Returns: 4.0
{"A fine sentence.","A fine sentence","-ending."}
Returns: 4.571428571428571
{"-A -fine sentence.","A fine sentence-","-ending."}
Returns: 4.571428571428571
{"hello-","-","-","-","great"}
Returns: 5.0
{"un-done-","-","abc-de--","good","-","bad.person"}
Returns: 3.4285714285714284
{"A-B","C"}
Returns: 1.0
{"A","B"}
Returns: 1.0
{"abc","def","abcdefg"}
Returns: 4.333333333333333
{ " now is the ex-", "ample. " }
Returns: 3.75
{ "hello-", "-", "-", "-", "great" }
Returns: 5.0
{ "-a-", "-- - - --", "-- -b-" }
Returns: 1.0
{ "AAA-", "-", "AAA" }
Returns: 3.0
{ "A-B", "C" }
Returns: 1.0
{ "a", "-", "ba" }
Returns: 1.5
{ "hello.world" }
Returns: 5.0
{ "a - h", "b -ff - - ff -", "- - -" }
Returns: 1.4
{ ". x" }
Returns: 1.0
{ "apple", "apple" }
Returns: 5.0
{ "All the time I have well-defined ", " trouble.", "-aaaaaaa-", "bbb -bb ---aaa" }
Returns: 4.363636363636363
{ "help--", "me" }
Returns: 3.0
{ "a - - -s -", "- ss - -s - sss -", "aaaaa -- - aa" }
Returns: 2.142857142857143
{ "All the time I have well-defined ", " trouble.", "a-a-a-a-a-a aaaaaaaaa", "bbbbbbbb bbbbbbbbbbbb-", " cccccccccccccc" }
Returns: 4.555555555555555
{ "hello-", "-", "-", "-", "great", "mazin", "ma-asdf-", "gfadsfga" }
Returns: 5.8
{ "a b-c", "-", "b-", "c", "b-", "-c", "b-", "-c-", "d", " d-", "e ", "b", "c", "d" }
Returns: 1.25
{ "asdf-bad", "asdf-bad-", "asdf bad", "asdf bad-" }
Returns: 4.0
{ "abc.def" }
Returns: 3.0
{ "he-", "-", "-l", "n.i-", " s.da-", "-", "-sdml .-", " bla-" }
Returns: 1.875
{ "All the time I have well-defined ", " trouble.", "aaaaa aaaaaaaaaaaaaaaa-", "aacc c cccccccccccccccc", "-aaaaaaaaaaaaaaa ----", "a-a-a-a--a-a-a--a-a-a--a-a-a", "aaaaaaaaaaaa-", " bbbbbbbbbbb" }
Returns: 4.5
{ "a", "b" }
Returns: 1.0
{ "ab", "cd", "ef" }
Returns: 2.0
{ "a.a" }
Returns: 1.0
{ "a aa sss -- -", "a dasd aasa -", "aa aa -", "aaa ss" }
Returns: 2.4
{ "a", "-", "b" }
Returns: 1.0
{ "abi", "-", "abi" }
Returns: 3.0
{ "All the time I have well-defined ", " trouble.", "aaaaaaaaaaaaaaa-aaaaaaaaaa", "aaaaaaaaaaaaa aaaaaaaaaa-", " cccccccccccccc", "asaa--a-a-a-a--a-a--a-a-a--a-a-a-a--a-a-a", "aaaaaa aaaaaaaaaaaa-", "a" }
Returns: 4.1875
{ "abc-" }
Returns: 3.0
{ "booo -", "weee" }
Returns: 4.0
{ "a-" }
Returns: 1.0
{ "oxi", "foximotomox-" }
Returns: 7.0
{ "aaa", "aaa", "aaa" }
Returns: 3.0
{ "All the time I have well-defined ", " trouble.", "a-a-a-a-a-a-", "--", "-", "-", "aaaaaaa-", " bbb bbb " }
Returns: 3.0588235294117645
{"abc", "def", "." }
Returns: 3.0
{"A", "-", "B" }
Returns: 1.0
{" now is the ex--", "ample. " }
Returns: 3.0
{"ab", "cd" }
Returns: 2.0
{"abc", "def" }
Returns: 3.0
{"a", "-", "a" }
Returns: 1.0
{"a", "b" }
Returns: 1.0
{"kyuri", "de", "namida", ".", "perorin" }
Returns: 5.0
{"a.b" }
Returns: 1.0
{"a", "a" }
Returns: 1.0
{"aa", "aa" }
Returns: 2.0
{"-a-" }
Returns: 1.0