0

我正在尝试检查字符串是否是回文。

例子:

雷达=雷达=真

iwant = tnawi = FALSE

任何示例将不胜感激。

4

4 回答 4

2

听起来你想检查一个单词是否是回文。有两种方法可以做到这一点。您可以检查单词是否与自身相反,或者您可以检查字符与它们应该匹配的位置。

Dart 的 String 还没有 reverse() 方法,所以第二种方法目前可能是最简单的:

bool isPanlindrome(String word) {
  for (int i = 0; i < word.length ~/ 2; i++) {
    if (word[i] != word[word.length - i - 1]) return false;
  }
  return true;
}
于 2012-10-28T17:59:42.077 回答
0

正如大卫所说(但不是在 Dart 中?),你可以写:

bool isPanlindrome(String s) {
  return s == reverse(s);
}
String reverse(String s) {
  // null or empty
  if (s == null|| s.length == 0)
    return s;
  List<int> charCodes = new List<int>();
  for (int i = s.length-1; i>= 0; i-- )
    charCodes.addLast(s.charCodeAt(i)) ;
  return new String.fromCharCodes(charCodes);
}

参见最近关于reverse()的帖子

于 2012-10-28T18:31:49.613 回答
0
String reverse(String s) {
  var chars = s.splitChars();
  var len   = s.length - 1;
  var i     = 0;

  while (i < len) {
    var tmp = chars[i];
    chars[i] = chars[len];
    chars[len] = tmp;
    i++;
    len--;
  }

  return Strings.concatAll(chars);
}

void main() {
  var s = "dog";
  print(s);
  print(reverse(s));
}
于 2012-10-28T18:36:26.190 回答
0

只需将 dart 函数用作

bool isPanlindrome(String input){
  return input == input.split('').reversed.join();
}
于 2022-01-17T11:13:47.713 回答