版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
简单有趣#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&&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' && a [ i ] == '1' ) || ( p == '1' && 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' && s[i+1]=='1') ||
(s[i])=='1' && 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' && temp[i+1] == '1')
{
temp[i] = 'T'; temp[i+1] = 'T';
} else if(temp[i] == '1' && temp[i+1] == '0')
{
temp[i] = 'T'; temp[i+1] = 'T';
}
}
return new string(temp).Replace("T","").Length;
}
}
}