Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- val edges = List(
- "AL", "AK", "AS", "AZ", "AR", "CA", "CO", "CT", "DE", "DC",
- "FM", "FL", "GA", "GU", "HI", "ID", "IL", "IN", "IA", "KS",
- "KY", "LA", "ME", "MH", "MD", "MA", "MI", "MN", "MS", "MO",
- "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "MP",
- "OH", "OK", "OR", "PW", "PA", "PR", "RI", "SC", "SD", "TN",
- "TX", "UT", "VT", "VI", "VA", "WA", "WV", "WI", "WY",
- "AA", "AE", "AP"
- ).groupBy(_(0)).mapValues(_.map(_(1)).toSet)
- var bestLenSoFar = 0
- def search(current: List[Char], visited: Set[(Char, Char)]): Unit = {
- if (current.size > bestLenSoFar) {
- println(current.size + ": " + current.reverse.mkString(""))
- bestLenSoFar = current.size
- }
- val x = current(0)
- edges.getOrElse(x, Set.empty).filterNot(y => visited.contains((x, y))).foreach { y =>
- search(y :: current, visited + ((x, y)))
- }
- }
- edges.keySet.foreach(x => search(List(x), Set.empty))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement