private static byte countMonotonicSequences(string[] i_NumbersSequences, eSequenceBehaviors i_MonotonicBehavior) { byte counter = 0; foreach (string sequence in i_NumbersSequences) { if ((getSequenceBehavior(sequence) & i_MonotonicBehavior) == i_MonotonicBehavior) { counter++; } } return(counter); }
private static eSequenceBehaviors getSequenceBehavior(string i_Sequence) { eSequenceBehaviors Behavior = eSequenceBehaviors.NonMonotonic; if (char.GetNumericValue(i_Sequence[0]) <= char.GetNumericValue(i_Sequence[1]) && char.GetNumericValue(i_Sequence[1]) <= char.GetNumericValue(i_Sequence[2])) { Behavior = eSequenceBehaviors.Increasing; } if (char.GetNumericValue(i_Sequence[0]) >= char.GetNumericValue(i_Sequence[1]) && char.GetNumericValue(i_Sequence[1]) >= char.GetNumericValue(i_Sequence[2])) { Behavior |= eSequenceBehaviors.Decreasing; } return(Behavior); }