aboutsummaryrefslogtreecommitdiff
path: root/challenge-250/deadmarshal/d/ch2.d
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-250/deadmarshal/d/ch2.d')
-rw-r--r--challenge-250/deadmarshal/d/ch2.d29
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));
+}
+