我想寫一個方法,它將字符串作爲輸入,並將輸出作爲有效數量的子字符串,可以從中產生,字符串將只有0和1的子字符串形成的只有一定的長度。驗證基於替代0和1的字符串
有效的子字符串情景:
子串僅具有連續0的有效和1
樣品輸入:
假設我們有一個字符串00110,子串我們從中得到的是00,01,11,10,0011,0110(只有偶數長度的奇數長度的子字符串不像001,011,110那樣有效),其中只有這些子字符串是有效的01,10,0011,它們具有連續的0和1
因此,在上述情況下,輸出爲3
條件: 輸入字符串的長度將是下5<n<10^5
我被困在驗證的子字符串,嘗試幾種不同的方法,但不成功,請讓我知道如果這個問題需要更多的澄清。
代碼:
public static int counting(string s)
{
//make into substrings function
var substrs = SubStrings(s);
foreach (var str in substrs.ToList())
{
if (!IsValidStr(str))
substrs.Remove(str);
}
var validstr=substrs.Distinct();
return validstr.Count();
}
private static List<string> SubStrings(string s)
{
List<string> substrs = new List<string>();
for (int i = 0; i < s.Length; i++)
{
for (int j = 2; j < s.Length; j += 2)
{
if ((s.Length - i >= j))
{
substrs.Add(s.Substring(i, j));
}
}
}
return substrs;
}
那麼,第一次測試會檢查他們是否長度....'substr.Length%2 == 0' – musefan
你試過了什麼?現在,你只是想讓我們爲你寫一個遞歸方法 – Shoe
「*連續的0和1的*」是什麼意思?爲什麼不是'0110'有效? –