每日一练100——Java奇怪的市场之旅(8kyu)
2018-09-19 本文已影响0人
砾桫_Yvan
题目
当听到来自附近街头表演者的美妙音乐时,您正在前往市场的路上。这些音符汇集在一起,就像音乐家把音乐模式放在一起一样。当你想知道你可以使用什么样的算法来将八度音程转换为8个高音或类似的东西时,你就会发现你已经看了演奏者大约10分钟了。你问,“人们通常会给这样的东西多少钱?” 艺术家抬起头来,“它总是tree fiddy(three fifty三美元五十美分)。”
就在那时,你意识到演奏者是一个来自旧石器时代的400英尺高的野兽。尼斯湖怪物几乎欺骗了你!
只有2种有保证的方法可以判断你是否正在和尼斯湖怪物说话:
A)这是一个来自旧石器时代B的400英尺高的野兽
B)它会问你tree fiddy
由于Nessie是伪装大师,所以准确告诉的唯一方法是寻找短语“tree fiddy”。因为你已经厌倦了被这个怪物碾压,所以现在是编写寻找尼斯湖怪物的解决方案的时候了。注意:它也可以写成3.50或三十五。
注:这题目真扯!
import org.junit.Test;
import static org.junit.Assert.*;
import org.junit.runners.JUnit4;
public class NessieTest {
@Test
public void testBasicTrue() {
String n = "Your girlscout cookies are ready to ship. Your total comes to tree fiddy";
System.out.println(n);
assertTrue(Nessie.isLockNessMonster(n));
}
@Test
public void testBasicFalse() {
String n = "Yo, I heard you were on the lookout for Nessie. Let me know if you need assistance.";
System.out.println(n);
assertFalse(Nessie.isLockNessMonster(n));
}
}
解题
My
public class Nessie {
public static boolean isLockNessMonster(String s){
return s.contains("tree fiddy") || s.contains("3.50") || s.contains("three fifty");
}
}
Other
import java.util.regex.Pattern;
public class Nessie {
public static boolean isLockNessMonster(String s) {
return Pattern.matches(".*(tree fiddy|3\\.50|three fifty).*", s);
}
}
public class Nessie {
public static boolean isLockNessMonster(String s){
if (s.indexOf("tree fiddy") > 0 ||
s.indexOf("3.50") > 0 ||
s.indexOf("three fifty") > 0)
return true;
else
return false;
}
}
后记
我还以为我写的代码已经比较有趣了,还有比我有趣的。