文字列内のパターンに一致するトークンの数をカウントするメソッド。
トークンは "$" の後に "$$" が続く場合、"$" と "$$" の間に任意の数の文字を含めることができます。
例えば:"$123$$, $ab$$, $qqwe123$$
入力文字列は"$122$$dddd$1aasds$$"
.
メソッドの出力は、上記の文字列に対して 2 になるはずです。
プログラミング言語は C# または C++ です。
これが私が思いついたコードですが、可能な限り最良の方法を見つけようとしています:
static int CalculateTokenCount()
{
string s = "$ab$$ask$$$$123$$";
int tokenCount = 0;
bool foundOneDollar = false;
bool foundSecondDollar = false;
if (string.IsNullOrEmpty(s))
{
return tokenCount;
}
for (int i = 0, x = 0; i < s.Length; i++)
{
if (s[i] == '$' && !foundOneDollar)
{
foundOneDollar = true;
continue;
}
if (foundOneDollar)
{
if (s[i] == '$' && !foundSecondDollar)
{
foundSecondDollar = true;
continue;
}
}
if (foundSecondDollar)
{
if (s[i] == '$')
{
tokenCount++;
}
foundSecondDollar = false;
}
}
Console.WriteLine(tokenCount);
return tokenCount;
}