其实就是求复核要求的子串

求子串的方法

截屏2021-04-23 下午6.54.09.png

  1. function isHuiwen(s, left, right) {
  2. if (!s) return false
  3. while (left <= right) {
  4. if (s[left] !== s[right]) {
  5. return false
  6. }
  7. left++
  8. right--
  9. }
  10. return true
  11. }
  12. /**
  13. * @param {string} s
  14. * @return {string[][]}
  15. */
  16. var partition = function(s) {
  17. if(!s) return []
  18. var res = []
  19. var path = []
  20. function backtracking(s,start) {
  21. if(start>=s.length){
  22. res.push([...path])
  23. return
  24. }
  25. for (let i = start; i < s.length; i++) {
  26. if(isHuiwen(s,start,i)){
  27. path.push(s.slice(start,i+1))
  28. }else{
  29. continue
  30. }
  31. backtracking(s,i+1)
  32. path.pop()
  33. }
  34. }
  35. backtracking(s,0)
  36. return res
  37. };
  38. partition('aab')