H5W3
当前位置:H5W3 > 其他技术问题 > 正文

shell中如何判断颠倒词?

请教大家一个问题,shell里面怎么判断两个词是否是颠倒词?

颠倒词的定义是:
字数相等,所有字都相同,字的顺序可以不一样

比如:
‘2016研发CPU’
‘2016CPU研发’

在python里面我是这么判断的

A='2016研发CPU'
B='2016CPU研发'

if A != B and len(A) == len(B) and sorted(A) == sorted(B):
    print('Y')
else:
    print('N')

请问在shell中该如何实现呢?

回答:

将两个字符串做升序排序,如果排序的结果完全相同就是,否则就不是。

回答:

经评论和答案提醒,想到实现方式了,另外还发现了自己之前判断方式的疏漏,非常感谢大家

Python中更简便的实现方式为

if A != B and sorted(A) == sorted(B):
        print('Y')
    else:
        print('N')

shell中同样的思路,先排序再对比,但是要先把字符串进行拆分,具体见代码

if [[ `echo $A | sed 's/./&\n/g' | sort` == `echo $B | sed 's/./&\n/g' | sort` ]]
then
    echo Y
else
    echo N

本文地址:H5W3 » shell中如何判断颠倒词?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址