Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit cbdd075

Browse files
more code
1 parent 711f7f9 commit cbdd075

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.codecraftlabs.leetcode
2+
3+
object TwoCharacters {
4+
def alternate(s: String): Int = {
5+
val chars = s.toCharArray.distinct
6+
val combinations = chars.combinations(2).map { case Array(x, y) => (x, y) }.toList
7+
val elements = combinations.map(i => s.replaceAll(s"[^${i._1}${i._2}]", ""))
8+
val filtered = elements.filter(validate)
9+
filtered.map(item => item.length).sorted.reverse.head
10+
}
11+
12+
private def validate(item: String): Boolean = {
13+
val lastPosition = item.length - 2
14+
var broken = false
15+
for (pos <- 0 until lastPosition) {
16+
if (item.charAt(pos) != item.charAt(pos + 2)) {
17+
return false
18+
}
19+
}
20+
true
21+
}
22+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package org.codecraftlabs.leetcode
2+
3+
import org.scalatest.{FlatSpec, Matchers}
4+
5+
class TwoCharactersSpec extends FlatSpec with Matchers {
6+
7+
"beabeefeab" should "return 5" in {
8+
TwoCharacters.alternate("beabeefeab") shouldEqual 5
9+
}
10+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /