0

我已经为回文程序整理了输入,但我对如何检查输入的单词是否是回文一无所知。

; Program to read name and output greeting 
            BR  main 
        name:   .BLOCK 32           ;space for up to 32 characters 
    msg1:   .ASCII "The word is: \x00" 
    msg2:   .ASCII "Enter a word: \x00" 
    main:   LDX 0,i             ; load index register with 0
            STRO    msg2,d      ;output word prompt 
    chin:   CHARI   name,x          ;read a character 
            LDA name,x      ;and load accumulator 
            ADDX    1,I     ;add 1 to index register 
            CPA 0x0A00,i    ;compares with line feed 
            BREQ    out     ;if line feed go to out 
            BR  chin        ;go to chin to read next char 
    out:    LDA '\x00',I        ;load acc with end of string 
            STA name,x      ;store end of string in name block
            STRO    msg1,d      ;output word message 
            STRO    name,d      ;output stored name
            STOP 
    .END

有人可以帮我解决这个问题吗?谢谢你。

4

1 回答 1

2

这里有一些简单的 C-ish 伪代码可以帮助您入门:

Left = Start;
Right = Start + Length - 1;

while (Left <= Right)  
{
  if Word[Left] != Word[Right]
    not a palindrome, exit
  Left++;
  Right--;
}
palindrome
于 2015-11-18T19:07:11.537 回答