简单有趣#154:零和一【难度:1级】:
答案1:
namespace myjinxin
{
using System;
using System. Linq;
using System. Collections. Generic;
using System. Text. RegularExpressions;
public class Kata
{
public int ZeroAndOne ( string s) {
return Regex. Replace ( s, "10|01" , "" ) . Length;
}
}
}
答案2:
namespace myjinxin
{
using System;
using System. Collections;
using System. Collections. Generic;
using System. ComponentModel;
using System. Data;
using System. Drawing;
using System. Linq;
using System. Text;
using System. Text. RegularExpressions;
using System. Threading. Tasks;
public class Kata
{
public int ZeroAndOne ( string s) {
char [ ] ss = s. ToArray ( ) ;
int a = 0 ;
for ( int i = 0 ; i < ss. Length; i++ )
{
if ( i < ss. Length - 1 & amp; & amp; ss[ i] != ss[ i + 1 ] )
{
i++ ;
}
else
{
a++ ;
}
}
return a;
}
}
}
答案3:
namespace myjinxin
{
using System. Text. RegularExpressions;
public class Kata
{
public int ZeroAndOne ( string s)
{
return Regex. Replace ( s, "10|01" , "" ) . Length;
}
}
}
答案4:
namespace myjinxin
{
using System;
using System. Linq;
public class Kata
{
public int ZeroAndOne ( string s)
{
string [ ] afterRemoving = s. Split ( new string [ ] { "10" , "01" } , StringSplitOptions. RemoveEmptyEntries) . ToArray ( ) ;
return String. Join ( "" , afterRemoving) . Length;
}
}
}
答案5:
namespace myjinxin
{
using System;
public class Kata
{
public int ZeroAndOne ( string s) {
var length = 0 ;
for ( var i = 0 ; i < s. Length; i++ )
{
if ( i + 1 >= s. Length || s[ i] == s[ i + 1 ] )
length++ ;
else
i++ ;
}
return length;
}
}
}
答案6:
namespace myjinxin {
using System. Linq;
public class Kata {
public int ZeroAndOne ( string s ) {
var a = s. ToCharArray ( ) ;
var p = a [ 0 ] ;
for ( int i = 1 ; i < a. Length; i++ ) {
if ( ( p == '0' & amp; & amp; a [ i ] == '1' ) || ( p == '1' & amp; & amp; a [ i ] == '0' ) ) {
a [ i ] = '-' ;
a [ i - 1 ] = '-' ;
}
p = a [ i ] ;
}
return a. Where ( c = > c != '-' ) . Count ( ) ;
}
}
}
答案7:
namespace myjinxin
{
using System;
using System. Text. RegularExpressions;
public class Kata
{
public int ZeroAndOne ( string s) {
return Regex. Replace ( s, "10|01" , "" ) . Length;
}
}
}
答案8:
namespace myjinxin
{
using System;
using System. Text. RegularExpressions;
public class Kata
{
public int ZeroAndOne ( string s) {
return Regex. Replace ( s, "01|10" , "" ) . Length;
}
}
}
答案9:
namespace myjinxin {
using System;
public class Kata {
public int ZeroAndOne ( string s) {
int newLen = 0 ;
int oldLen = 0 ;
do {
oldLen = s. Length;
for ( int i = 0 ; i < s. Length - 1 ; i++ ) {
if ( ( s[ i] == '0' & amp; & amp; s[ i+ 1 ] == '1' ) ||
( s[ i] ) == '1' & amp; & amp; s[ i+ 1 ] == '0' ) {
s = s. Remove ( i, 2 ) ;
s = s. Insert ( i, " " ) ;
}
}
newLen = s. Length;
} while ( newLen < oldLen) ;
s = s. Replace ( " " , "" ) ;
return s. Length;
}
}
}
答案10:
namespace myjinxin
{
using System;
public class Kata
{
public int ZeroAndOne ( string s)
{
char [ ] temp = s. ToCharArray ( ) ;
for ( int i = 0 ; i < s. Length- 1 ; i++ )
{
if ( temp[ i] == '0' & amp; & amp; temp[ i+ 1 ] == '1' )
{
temp[ i] = 'T' ; temp[ i+ 1 ] = 'T' ;
} else if ( temp[ i] == '1' & amp; & amp; temp[ i+ 1 ] == '0' )
{
temp[ i] = 'T' ; temp[ i+ 1 ] = 'T' ;
}
}
return new string ( temp) . Replace ( "T" , "" ) . Length;
}
}
}