-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy pathDetectCapitalSln.cs
68 lines (59 loc) · 2.03 KB
/
DetectCapitalSln.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StringSln.Lib
{
public class DetectCapitalSln
{
// 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 this word are not capitals, like “leetcode”.
//Only the first letter in this word is capital if it has more than one letter, like “Google”.
//Otherwise, we define that this word doesn’t use capitals in a right way.
//Example 1:
//Input: "USA"
//Output: True
//Example 2:
//Input: "FlaG"
//Output: False
public bool DetectCapitalUse(string word)
{
if (string.IsNullOrEmpty(word)) return true;
char fst = word[0];
if (charCapital(fst))
{
int afterCapital = 0;
for (int i = 1; i < word.Length; i++)
{
if (charCapital(word[i]))
afterCapital++;
}
if (afterCapital == 0)
return true;//只有首字符大写
else if (afterCapital == word.Length - 1)
return true;//都是大写
return false;
}
else//首字符小写
{
int afterCapotal = 0;
for (int i = 1; i < word.Length; i++)
{
if (charCapital(word[i]))
afterCapotal++;
}
return afterCapotal == 0 ? true : false;
}
}
private bool charCapital(char ch)
{
int chint = Convert.ToInt32(ch);
if (chint >= 65 && chint <= 90)
return true;
return false;
}
}
}