Class DC.Samples Extends %RegisteredObject
{
/// partition an array into two subarrays
/// return [[even], [odd]]
ClassMethod Task1a(x As %DynamicArray) As %DynamicArray
{
set t(0)=[],t(1)=[]
for i=0:1:x.%Size()-1 do t(x.%Get(i)#2).%Push(x.%Get(i))
quit [(t(0)),(t(1))]
}
/// partition an array into two subarrays
/// return [[even], [odd]]
ClassMethod Task1b(x As %DynamicArray) As %DynamicArray
{
set t(0)=[], t(1)=[], i=x.%GetIterator()
while i.%GetNext(,.v) { do t(v#2).%Push(v) }
quit [(t(0)),(t(1))]
}
/// hamming distance of two strings
ClassMethod Task2(x As %String, y As %String) As %Integer
{
if $l(x)-$l(y) quit "<Error>" // strings have to be the same length
set r=0
for i=1:1:$l(x) set r=$e(x,i)'=$e(y,i)+r
quit r
}
/// encrypt an string
ClassMethod Task3(x As %String) As %String
{
quit $tr($re(x),"aeiou","01223")_"aca"
}
/// check a string for identical chars
ClassMethod Task4(x As %String) As %Boolean
{
quit $tr(x,$e(x))=""
}
/// double chars
ClassMethod Task5(x As %String) As %String
{
f i=$l(x):-1:1 s $e(x,i)=$e(x,i)_$e(x,i)
q x
}
}
- Log in to post comments