C#如何检查一个字符串是否包含连续3次相同的字母
C# how to check if a string contains 3 times the same letters in a row
如何检查一个字符串数组是否连续三次出现相同的字母?例如:
AABAC
会 return 不会
AAABC
会 return 是
您可以只扫描 string
值并检查三个相邻字符是否相同
public bool Contains3InARow(string data)
{
for(var i=0;i<data.Length-2;++i)
if(data[i]==data[i+1] && data[i+1]==data[i+2])
return true;
return false;
}
有时(很少)正则表达式是对问题的回答,特别是如果问题是这样的。
bool ism1 = Regex.IsMatch("AABAC", @"(.)"); // false
bool ism2 = Regex.IsMatch("AAABC", @"(.)"); // true
匹配任何字符 (.
),然后匹配第一个匹配项 (
) 两次。
bool ContainsTheSameCharThreeTimesInARow(string s) {
for (int i = 2; i < s.Length; ++i) {
if (s[i] == s[i-1] && s[i] == s[i-2])
return true;
}
return false;
}
bool CheckStringHasRepeatForThree(string inputString)
{
if (inputString.Length < 3) return false;
return inputString.Where((c,i)=> i >= 2 && s[i-1] == c && s[i-2] == c).Any();
}
如何检查一个字符串数组是否连续三次出现相同的字母?例如:
AABAC
会 return 不会
AAABC
会 return 是
您可以只扫描 string
值并检查三个相邻字符是否相同
public bool Contains3InARow(string data)
{
for(var i=0;i<data.Length-2;++i)
if(data[i]==data[i+1] && data[i+1]==data[i+2])
return true;
return false;
}
有时(很少)正则表达式是对问题的回答,特别是如果问题是这样的。
bool ism1 = Regex.IsMatch("AABAC", @"(.)"); // false
bool ism2 = Regex.IsMatch("AAABC", @"(.)"); // true
匹配任何字符 (.
),然后匹配第一个匹配项 () 两次。
bool ContainsTheSameCharThreeTimesInARow(string s) {
for (int i = 2; i < s.Length; ++i) {
if (s[i] == s[i-1] && s[i] == s[i-2])
return true;
}
return false;
}
bool CheckStringHasRepeatForThree(string inputString)
{
if (inputString.Length < 3) return false;
return inputString.Where((c,i)=> i >= 2 && s[i-1] == c && s[i-2] == c).Any();
}