Complete reverse string
This commit is contained in:
parent
d2ff52dc39
commit
1ef9941f2d
3 changed files with 7 additions and 8 deletions
|
@ -1,4 +1,5 @@
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
unicode-segmentation = "1.10.1"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
grapheme = []
|
grapheme = []
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
use unicode_segmentation::UnicodeSegmentation;
|
||||||
pub fn reverse(input: &str) -> String {
|
pub fn reverse(input: &str) -> String {
|
||||||
unimplemented!("Write a function to reverse {}", input);
|
let mut output:String = String::new();
|
||||||
|
for i in input.graphemes(true).rev(){
|
||||||
|
output.push_str(i);
|
||||||
|
}
|
||||||
|
output
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,49 +19,42 @@ fn test_an_empty_string() {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
|
||||||
/// a word
|
/// a word
|
||||||
fn test_a_word() {
|
fn test_a_word() {
|
||||||
process_reverse_case("robot", "tobor");
|
process_reverse_case("robot", "tobor");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
|
||||||
/// a capitalized word
|
/// a capitalized word
|
||||||
fn test_a_capitalized_word() {
|
fn test_a_capitalized_word() {
|
||||||
process_reverse_case("Ramen", "nemaR");
|
process_reverse_case("Ramen", "nemaR");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
|
||||||
/// a sentence with punctuation
|
/// a sentence with punctuation
|
||||||
fn test_a_sentence_with_punctuation() {
|
fn test_a_sentence_with_punctuation() {
|
||||||
process_reverse_case("I'm hungry!", "!yrgnuh m'I");
|
process_reverse_case("I'm hungry!", "!yrgnuh m'I");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
|
||||||
/// a palindrome
|
/// a palindrome
|
||||||
fn test_a_palindrome() {
|
fn test_a_palindrome() {
|
||||||
process_reverse_case("racecar", "racecar");
|
process_reverse_case("racecar", "racecar");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
|
||||||
/// an even-sized word
|
/// an even-sized word
|
||||||
fn test_an_even_sized_word() {
|
fn test_an_even_sized_word() {
|
||||||
process_reverse_case("drawer", "reward");
|
process_reverse_case("drawer", "reward");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
|
||||||
/// wide characters
|
/// wide characters
|
||||||
fn test_wide_characters() {
|
fn test_wide_characters() {
|
||||||
process_reverse_case("子猫", "猫子");
|
process_reverse_case("子猫", "猫子");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
|
||||||
#[cfg(feature = "grapheme")]
|
#[cfg(feature = "grapheme")]
|
||||||
/// grapheme clusters
|
/// grapheme clusters
|
||||||
fn test_grapheme_clusters() {
|
fn test_grapheme_clusters() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue