Find the capitals

Find the capitals

Description:

Instructions

Write a function that takes a single string (word) as argument. The function must return an ordered list containing the indexes of all capital letters in the string.

Example

Assert.AreEqual(Kata.Capitals("CodEWaRs"), new int[]{0,3,4,6});
using System;
using System.Linq;

public static class Kata
{
  public static int[] Capitals(string word)
  {
    //Write your code here
    int[] array = new int[] { };
            if (word == null || word == string.Empty)
            {
                return array;
            }
            string tmp = word.ToLower();
            return Enumerable.Range(0, tmp.Length).Where(i => word[i] != tmp[i]).ToArray();
  }
}

其他人的解法:

值得学习的是char本身自带了判断是否大写字母的函数

using System.Collections.Generic;
using System;

public static class Kata
{
  public static int[] Capitals(string word)
  {
     var capitalIndexes = new List<int>();

      for (var i = 0; i < word.Length; i++)
      {
        if (char.IsUpper(word[i]))
          capitalIndexes.Add(i);
      }

      return capitalIndexes.ToArray();
  }
}


时间: 2024-10-13 12:18:55

Find the capitals的相关文章

XVII Open Cup named after E.V. Pankratiev. GP of Two Capitals

A. Artifact Guarding 选出的守卫需要满足$\max(a+b)\leq \sum a$,从小到大枚举每个值作为$\max(a+b)$,在权值线段树上找到最大的若干个$a$即可. 时间复杂度$O(n\log n)$. #include<cstdio> #include<algorithm> #include<set> #include<map> using namespace std; typedef long long ll; const

CSU 1805 Three Capitals(矩阵树定理+Best定理)

http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1805 题意: A和B之间有a条边,A和G之间有b条边,B和G之间有c条边.现在从A点出发走遍所有的边,然后再回到A点,问一共有多少种方法. 思路: 16年湖南省赛题目,这道题目是求欧拉回路的个数,和生成树的计数有一定的联系. 首先给出神奇的Best定理,这是什么鬼定理,反正查不到什么有关该定理的文章... $ec(G)=t_s(G)\cdot deg(s)! \cdot \prod_{v\i

2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛

Banana Bananas are the favoured food of monkeys. In the forest, there is a Banana Company that provides bananas from different places. The company has two lists. The first list records the types of bananas preferred by different monkeys, and the seco

Android学习之访问者模式详解

本文和大家分享的主要是android设计模式中的访问者模式相关内容,一起来看看吧,希望对大家学习android有所帮助. 访问者模式 访问者模式属于行为模式. 访问者模式中属于相对比较复杂的一类,它会在A中让B访问,而实际在B中实际调用的是A的方法. class A { public void method1(){ System.out.println("AAAAAA"); } public void method2(B b){ b.showA(this); } } class B {

Java-basic-2-

接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类. 如果一个类定义在某个包中,那么package语句应该在源文件的首行. 如果源文件包含import语句,那么应该放在package语句和类定义之间.如果没有package语句,那么import语句应该在源文件中最前面. import语句和package语句对源文件中定义的所有类都有效.在同一源文件中,不能给不同的类不同的包声明. byte:1字节-128~127,在大型数组中节约空间 short:2字节-32768~32767 in

容器深入研究 --- 散列与散列码(一)

通常的: 当标准类库中的类被作用HashMap的键.它用的很好,因为它具备了键所需的全部性质. 当你自己创建用作HashMap的键的类,有可能会忘记在其中放置必须的方法,而这时通常会犯的一个错误. 例如:考虑一个天气系统,将Groundhog对象与Prediction对象联系起来. class Groundhog { protected int number; public Groundhog(int n) { number = n; } public String toString() { r

一个有意思的Python小程序(全国省会名称随机出题)

最近比较迷Python,仿照<Python编程快速上手>8.5写了一个随机出卷的小程序.程序本身并不难,关键是解决问题的思路,还有就是顺便复习了一下全国地名(缅怀一下周总理). OK其实还是有一个难点的,就是关于Python的中文编码问题,如何把中文字典输入到txt然后再把它读出来,程序中借用了json方法,而且在输出时decode.encode,有一些参考的价值吧.废话不说了,上程序. # *encoding:utf-8 * from __future__ import print_func

geoserver 图层样式

1.Styled Layer Descriptor 标准描述了稳当的结构合使用规则.一个文档包含了符号定义和绘制规则,那么这个文档就叫做Styled Layer Desciptor(SLD)样式,它是一个text/Xml文件,扩展名为.sld.SLD基于XML标记语言,附加的标准是一个XSD schema,XSD schema定义了SLD语法. 2.样式文档结构 样式最外层部分包含如下片段: <?xml version="1.0" encoding="ISO-8859-

Detect Capital

Given a word, you need to judge whether the usage of capitals in it is right or not. We define the usage of capitals in a word to be right when one of the following cases holds: All letters in this word are capitals, like "USA". All letters in t