我正在尝试检查字符串是否是回文。
例子:
雷达=雷达=真
iwant = tnawi = FALSE
任何示例将不胜感激。
听起来你想检查一个单词是否是回文。有两种方法可以做到这一点。您可以检查单词是否与自身相反,或者您可以检查字符与它们应该匹配的位置。
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;
}
正如大卫所说(但不是在 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()的帖子
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));
}
只需将 dart 函数用作
bool isPanlindrome(String input){
return input == input.split('').reversed.join();
}