mysql 分割字符串,excel 分割字符串
chanong
|在这道题中,你将得到两个长度相同的字符串a 和b。选择一个下标来分隔具有相同下标的两个字符串。从a我们得到两个满足a=aprefix + asuffix的字符串aprefix和asuffix,同样从b我们得到满足b=bprefix + bsuffix的两个字符串bprefix和bsuffix。判断aprefix + bsuffix 或bprefix + asuffix 能否构成回文串。将字符串s 拆分为sprefix 和ssuffix 时,ssuffix 或sprefix 可以为空。例如, s='abc' 那么'' + 'abc' 、 'a' + 'bc' 、 'ab' + 'c' 和'abc' + '' 都是合法分区。如果可以形成回文字符串,则返回true,否则返回false。请注意,x + y 表示字符串x 和y 的串联。示例1: 输入:a='x', b='y' 输出:true 解释:如果a 或b 是回文字符串,则答案必须为true,因为它可以按如下方式拆分: aprefix='', asuffix=' x'bprefix='', bsuffix='y' 那么aprefix + bsuffix='' + 'y'='y' 就是回文串。示例2: 输入:a='ulacfd', b='jizalu' 输出:true 描述:根据下标3 拆分:aprefix='ula', asuffix='cfd' bprefix='jiz', bsuffix='alu' then aprefix + bsuffix='ula' + 'alu'='ulaalu' 是一个回文字符串。提示: 1=a.length, b.length=105 a.length==b.length a 和b 都只包含小写字母
解题思路分析1.双指针;时间复杂度O(n),空间复杂度O(1)
func checkPalindromeFormation(a string, b string) bool { if Judge(a, b)==true || Judge(b, a)==true { return true } return false}//检查prefixA+suffixB 是否为回文判断func Judge(a, b string) bool { left, right :=0, len(a)-1 for left right { if a[left]==b[right] { left++ right-- } else { Break } } var i, j int //两个判断//A1+A2+A3 //B1+B2+B3 //1.reverse(A1)=B3,判断B2是否为回文i, j=left , right for i j { if b [i]==b[j] { i++ j-- } else { Break } } if i=j { return true } //2.reverse(A1)=B3, A2 是否为回文判断i是否, j。=left, right for i j { if a[i]==a[j] { i++ j-- } else { Break } } if i=j { return true } return false} 2. 双指针,时间复杂度O( n ), 空间复杂度O(1)
func checkPalindromeFormation(a string, b string) bool { start :=len(a)/2 - 1 //左中心坐标c :=check(a, a, start) if check(a, b, c)==- 1 || check(b, a, c)==-1 { return true } c=check(b, b, start) if check(a, b, c)==-1 || check(b, a , c)==-1 { return true } return false} //从start开始向左,从n-1-start开始向右func check(a, b string, start int) int { left :=start right :=len( a) - 1 - start for left=0 { if a[left] !=b[right] { Break } left-- right++ } return left} 在Medium上总结主题,讨论情况,然后决定。Masu。








