我试图检查字符串是否是回文。
示例:
radar = radar = TRUE
iwant = tnawi = FALSE
任何例子都会受到赞赏。
答案 0 :(得分:1)
听起来你想检查一个单词是否是回文。有两种方法可以做到这一点。您可以检查单词是否与其自身相反,或者您可以根据它们应该匹配的位置检查字符。
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;
}
答案 1 :(得分:0)
正如大卫所说(但不是在达特?),你可以写:
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()
的近期帖子答案 2 :(得分: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));
}