Java Reference
In-Depth Information
characters from a
String
. For example,
removeDups("baaaccd") = "bacd"
.
12.
Write a recursive function that tells how many blanks a
String
has.
13.
Write the following function; the recursive case should involve substring
s[1..]
:
/** =
the reverse of
s.
For example,
srev("abc")
is
"cba" */
public static
String rev(String s)
14.
The previous exercise results in a function that has a recursive call that is not
tail-recursive. The way to make it more efficient is to add an extra parameter.
Write the following function, making sure that recursive calls are tail recursive:
/** =
(the reverse of
s
)
+t */
public static
String tailrev(String s, String t)
15.
In the previous exercise, you wrote a function to reverse a
String
whose
only call is tail-recursive. Use the method of Sec. 15.3.4 to eliminate the tail-
recursive call from that function.
16.
Write the following linear search procedure, using recursion (no loops):
/**
Return the int
i
that satisfies
(0) x
is not in
b[0..i-1]
and
(1) x = b[i]
or
i = b.length */
public static int
linearSearch(
int
[] b,
int
x,
int
h)
17.
This exercise asks you to implement the binary search algorithm of Sec.
8.5.3 recursively. Write the body of the following function:
/** =
an integer
i
that satisfies
b[h..i] ≤ x < b[i+1..k] */
public static int
binarySearch(
int
[] b,
int
x,
int
h,
int
k)
18.
A palindrome is a
String
that reads the same backward and forward. Write
the following function. The way to think about it is to understand that
s
is a
palindrome if its first and last characters are the same and the substring between
them is a palindrome. By definition, a string of length
0
or
1
is a palindrome.
/** = "s
is a palindrome
" */
public static boolean
isPalindrome(String s)
18.
Write a recursive function (no loops) to computer
gcd(x, y)
, where
x>0
and
y>0
. The
gcd(x, y)
is the
greatest common divisor
of
x
and
y
: the largest
integer that divides both of them. Your recursive function can use (only) these
properties of gcd:
Turn to lesson
page 15.3 for
an astonishing
palindrome.
Search WWH ::
Custom Search