【发布时间】:2014-12-08 22:34:44
【问题描述】:
我的字符串总是包含 x 或 y,我必须根据以下条件进行验证
- 条件 1:如果所有字符都相同,则返回 true(如:'xxxxx')
- 条件 2 : 如果除了一个字符之外所有都相同返回 true ( Like : 'xxxy')
- 条件3:如果所有字符都相同而其他字符更多 不止一次 retun false 。 (like : 'xxxyy' // y 存在 2 次)
如何在不使用条件编写复杂的 for 循环的情况下检查这一点。有没有使用 xor 的解决方案,或者如果我将字符串存储为布尔值或数字(x=1 或 true y=0 或 false)会有帮助。
【问题讨论】:
-
yyyyx是真的,yyyxyyx是假的吗?什么是'xyxyx`? -
条件 3 对我来说没有意义,可以详细说明一下,谢谢
-
是 @JonathanM 在 yyyyx 中多数是 y 并且允许一个 x 但在 yyyxyyx 中多数是 y 但 x 出现不止一次
-
在第三种情况下,除了允许一个额外的字符之外,哪个字符在字符串中占多数,不超过一次。@Saruman
-
如果您想计算字符串中的
x,请尝试s.replaceAll("y","").length(),如果我了解问题所在。您应该能够根据这个和原始字符串的长度找出答案。
标签: java regex performance algorithm