kata探险记(一)

简介: kata探险记(一)

   之前推荐的一个刷题平台:一个好玩的刷题平台,探索了有一小段时间了,来做一下阶段性的记录回顾。

1. 整体的感觉

   工欲善其事,必先利其器。这个codewars平台整体对工具的感觉会比leetcode更强烈一些。在做每一题的时候,都会深有体会。比如我用的是java,如果对jdk更熟悉一些,不敢说是一路坦途,至少在目前的阶段,是一片坦途。考验的更多的是自己对于某个语言的熟悉程度。

2. 与leetcode的不同    

通过上面第一点已经可以看出,codewars这个平台和leetcode完全是两个方向,但是并不冲突。leetcode重在算法,而codewars重在使用    单纯的算法可能并不足以让你对一门语言有更加深入的了解,因为实现起来并不需要太多的语言中已经有的原生方法,但是这些方法恰恰在实际使用中会让你事半功倍,受益无穷,这一点,正是codewars可以给予的,允许你尽最大可能使用更多的自带方式解决问题。3. 示例和一些记录
   当然,只是大段的文字赘述还是没有什么太深的感受,还是通过几个例子来记录一下,效果更好。

  • 题目:判断一个句子是否包含每个英文字母至少一次(a-z),不限大小写
  • 解答
通用方式:
public class PangramChecker {
  public boolean check(String sentence){
        for (char c = 'a'; c<='z'; c++)
            if (!sentence.toLowerCase().contains("" + c))
                return false;
        return true;
  }
}
流过滤的解法:
class PangramChecker {
    boolean check(final String sentence) {
        return sentence.chars()
            .filter(Character::isLetter)
            .map(Character::toLowerCase)
            .distinct()
            .count() == 26;
    }
}

题目:

示例:
46288 --> 4³ + 6⁴+ 2⁵ + 8⁶ + 8⁷ = 2360688 = 46288 * 51
给定一个正整数 n,写成 abcd...(a, b, c, d... 是数字)和一个正整数 p
我们想要找到一个正整数 k,如果它存在的话,使得 n 的数字之和对 p 的连续幂等于 k * n。
换一种说法:
是否存在整数 k 使得:(a ^ p + b ^ (p+1) + c ^(p+2) + d ^ (p+3) + ...) = n * k

解答:

拿到之后,很容易跟着思路直接拆分开来算,通过除10逐步得到每一位。
但是多使用一下Java的方法就不会如此,反而会快很多:
public class DigPow {  
  public static long digPow(int n, int p) {
    String intString = String.valueOf(n);
    long sum = 0;
    for (int i = 0; i < intString.length(); ++i, ++p)
      sum += Math.pow(Character.getNumericValue(intString.charAt(i)), p);
    return (sum % n == 0) ? sum / n : -1;
  }
}
  • 题目:判断一个字符串是否以另一个字符串结尾
  • 解答:
除了挨个比较之外,还有很多辅助方法可用:
endWith:
public class Kata {
  public static boolean solution(String str, String ending) {
    return str.endsWith(ending);
  }
}
长度比较:
public class Kata {
  public static boolean solution(String str, String ending) {
    return str.length() >= ending.length() ? 
    str.substring(str.length()-ending.length()).equals(ending) : false;
  }
}

   最后,大家来各取所需吧,最重要的还是在练习过程中,不要过于拘泥当下,记得从题目中走出来,让思路更灵活一些~

相关文章
|
8月前
|
Kubernetes Cloud Native Linux
Docker已死?听听他怎么说(开课吧)
Docker已死?听听他怎么说(开课吧)
123 0
|
存储 监控 Devops
Docker与DevOps的无敌组合,引爆你的创新潜能
Docker与DevOps的无敌组合,引爆你的创新潜能
190 0
|
Kubernetes Linux Go
docker 与 podman 的故事:一个方兴未艾,一个异军突起
podman 虽然与 docker 有替代关系,但是在“弃用 docker”事件中,podman 并非是主角。Kubernetes 所进行的“弃用 docker”的主角是 CRI 的其他实现方式,而由 RedHat 推出的 podman 则更加前沿。在现实的应用中,docker 方兴未艾,podman 却已经异军突起。
338 1
docker 与 podman 的故事:一个方兴未艾,一个异军突起
|
Web App开发 Kubernetes Cloud Native
容器技术发展史
容器技术发展史
245 0
容器技术发展史
|
Kubernetes Cloud Native 应用服务中间件
冬季实战营第四期:零基础容器技术实战感悟
K8S和docker实操, pts和AHAS保障网站稳定
124 0
|
Dragonfly 运维 资源调度
KubeCon 北美前瞻|在 2020 最后,容器领域有哪些值得你关注的话题?
让我们先睹为快,看看在 2020 北美 KubeCon + CloudNativeCon 上阿里巴巴有哪些值得关注的话题、嘉宾和分享环节。
12565 0
KubeCon 北美前瞻|在 2020 最后,容器领域有哪些值得你关注的话题?
|
人工智能 Kubernetes Cloud Native
拿下 Gartner 容器产品第一,阿里云打赢云原生关键一战!
近日,Gartner 发布 2020 年公共云容器报告,据报告显示,阿里云和 AWS 拥有最丰富的产品布局,覆盖 9 项产品能力,并列排名第一。
|
容器 Kubernetes Cloud Native
云原生生态周报 Vol. 16 | CNCF 归档 rkt,容器运行时“上古”之战老兵凋零
作者列表:木苏,临石,得为,等等 业界要闻 1.安全漏洞 CVE-2019-9512 CVE-2019-9514 http2 的 DOS 漏洞,一旦攻击成功会耗尽服务器的 cpu/mem,从而导致服务不可用。
|
Kubernetes Cloud Native Linux
Kubernetes三周年,这仅仅是伟大征途的开始
很难相信Kubernetes 1.0是三年前才发布的,它现在的影响力已经空前绝后了。Kubernetes生态系统确实很庞大,很多大企业(比如Bloomberg)和小公司都在使用这一可能会成为IT历史上最为成功的开源软件。
2190 0
《远见》读书笔记
看得远,才走得远 最近两周阅读了《远见》这本关于职业规划的书,这本书在一定程度上改变了我对职业生涯的认识。 最深的感受是职业生涯的长度。我是计算机专业毕业,一直也在从事软件相关的工作,因为工作压力大,加班强度高,大多数人对这个行业的认识都是做不久,从业十年都已经算是老兵了,我周围的环境也是如此,比我年轻的人都开始自称老头子,所以我也有点迷惑该如何发展。
1405 0