diff options
Diffstat (limited to 'challenge-250/deadmarshal/d/ch2.d')
| -rw-r--r-- | challenge-250/deadmarshal/d/ch2.d | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/challenge-250/deadmarshal/d/ch2.d b/challenge-250/deadmarshal/d/ch2.d new file mode 100644 index 0000000000..535ebf9d15 --- /dev/null +++ b/challenge-250/deadmarshal/d/ch2.d @@ -0,0 +1,29 @@ +import std.stdio:writeln; +import std.ascii:isDigit; +import std.conv:to; + +bool is_numeric(string str) +{ + foreach(i;0..str.length) if(!isDigit(str[i])) return false; + return true; +} + +ulong alphanumeric_string_value(string[] arr) +{ + ulong max = 0; + foreach(i;0..arr.length) + { + ulong n = is_numeric(arr[i]) ? to!int(arr[i]) : arr[i].length; + if(n > max) max = n; + } + return max; +} + +void main() +{ + string[] arr1 = ["perl","2","000","python","r4ku"]; + string[] arr2 = ["001","1","000","0001"]; + writeln(alphanumeric_string_value(arr1)); + writeln(alphanumeric_string_value(arr2)); +} + |
