赞
踩
- class Solution {
- public boolean wordBreak(String s, List<String> wordDict) {
- HashSet<String> set = new HashSet<>(wordDict);
- boolean[] valid = new boolean[s.length() + 1];
- valid[0] = true;
- //物品的顺序需要考虑,所以先循环背包
- for (int i = 1; i <= s.length(); i++) {
- //此处加强valid【i】为空是为了在确定了字符串前i位可以在字典里找到拼接后,
- //直接进入后面i的判断
- for (int j = 0; j < i && !valid[i]; j++) {
- //字典中的词可以用多次,所以从前向后遍历
- if (set.contains(s.substring(j, i)) && valid[j]) {
- valid[i] = true;
- }
- }
- }
-
- return valid[s.length()];
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。