每日一练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;
    }
}

后记

我还以为我写的代码已经比较有趣了,还有比我有趣的。

上一篇下一篇

猜你喜欢

热点阅读