0

文字列が回文であるかどうかを確認しようとしています。

例:

レーダー=レーダー=TRUE

iwant = tnawi = FALSE

任意の例をいただければ幸いです。

4

4 に答える 4

2

単語が回文であるかどうかを確認したいようです。これを行うには2つの方法があります。単語が逆になっていることに対して単語が等しいかどうかを確認するか、文字が一致するはずの位置に対して文字を確認することができます。

Dartの文字列にはまだreverse()メソッドがないため、2番目のアプローチがおそらく今のところ最も簡単です。

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

Davidが言ったように(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

ダーツ機能を次のように使用するだけです

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