422:有效的单词方块422:有效的单词方块

This commit is contained in:
轩辕龙儿 2022-03-23 22:51:58 +08:00
parent 82165b5641
commit ce597f4f8e
2 changed files with 205 additions and 0 deletions

View File

@ -0,0 +1,122 @@
//给你一个单词序列判断其是否形成了一个有效的单词方块
//
// 有效的单词方块是指此由单词序列组成的文字方块的 k k (0 k < max(行数, 列数)) 所显示的字符串完全相同
//
// 注意
//
//
// 给定的单词数大于等于 1 且不超过 500
// 单词长度大于等于 1 且不超过 500
// 每个单词只包含小写英文字母 a-z
//
//
//
//
// 示例 1
//
// 输入
//[
// "abcd",
// "bnrt",
// "crmy",
// "dtye"
//]
//
//输出
//true
//
//解释
// 1 行和第 1 列都是 "abcd"
// 2 行和第 2 列都是 "bnrt"
// 3 行和第 3 列都是 "crmy"
// 4 行和第 4 列都是 "dtye"
//
//因此这是一个有效的单词方块
//
//
//
//
// 示例 2
//
// 输入
//[
// "abcd",
// "bnrt",
// "crm",
// "dt"
//]
//
//输出
//true
//
//解释
// 1 行和第 1 列都是 "abcd"
// 2 行和第 2 列都是 "bnrt"
// 3 行和第 3 列都是 "crm"
// 4 行和第 4 列都是 "dt"
//
//因此这是一个有效的单词方块
//
//
//
//
// 示例 3
//
// 输入
//[
// "ball",
// "area",
// "read",
// "lady"
//]
//
//输出
//false
//
//解释
// 3 行是 "read" 然而第 3 列是 "lead"
//
//因此 不是 一个有效的单词方块
//
//
//
// Related Topics 数组 矩阵 👍 31 👎 0
package leetcode.editor.cn;
import java.util.Arrays;
import java.util.List;
//422:有效的单词方块
public class ValidWordSquare {
public static void main(String[] args) {
Solution solution = new ValidWordSquare().new Solution();
System.out.println(solution.validWordSquare(Arrays.asList("ball", "area", "read", "lady")));
System.out.println(solution.validWordSquare(Arrays.asList("abcd", "bnrt", "crmy", "dtye")));
System.out.println(solution.validWordSquare(Arrays.asList("abcd", "bnrt", "crm", "dt")));
System.out.println(solution.validWordSquare(Arrays.asList("abc", "b")));
}
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
public boolean validWordSquare(List<String> words) {
for (int i = 0; i < words.size(); i++) {
String word = words.get(i);
int j = 0;
for (; j < word.length(); j++) {
if (j >= word.length() || j >= words.size() || i >= words.get(j).length() || word.charAt(j) != words.get(j).charAt(i)) {
return false;
}
}
for (; j < words.size(); j++) {
if (j < words.size() && words.get(j).length() > words.size()) {
return false;
}
}
}
return true;
}
}
//leetcode submit region end(Prohibit modification and deletion)
}

View File

@ -0,0 +1,83 @@
<p>给你一个单词序列,判断其是否形成了一个有效的单词方块。</p>
<p>有效的单词方块是指此由单词序列组成的文字方块的&nbsp;第 k 行 和&nbsp;第 k 列 (0 &le; <em>k</em> &lt; max(行数, 列数)) 所显示的字符串完全相同。</p>
<p><strong>注意:</strong></p>
<ol>
<li>给定的单词数大于等于 1 且不超过 500。</li>
<li>单词长度大于等于 1 且不超过 500。</li>
<li>每个单词只包含小写英文字母&nbsp;<code>a-z</code></li>
</ol>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre><strong>输入:</strong>
[
&quot;abcd&quot;,
&quot;bnrt&quot;,
&quot;crmy&quot;,
&quot;dtye&quot;
]
<strong>输出:</strong>
true
<strong>解释:</strong>
第 1 行和第 1 列都是 &quot;abcd&quot;
第 2 行和第 2 列都是 &quot;bnrt&quot;
第 3 行和第 3 列都是 &quot;crmy&quot;
第 4 行和第 4 列都是 &quot;dtye&quot;
因此,这是一个有效的单词方块。
</pre>
<p>&nbsp;</p>
<p><strong>示例 2</strong></p>
<pre><strong>输入:</strong>
[
&quot;abcd&quot;,
&quot;bnrt&quot;,
&quot;crm&quot;,
&quot;dt&quot;
]
<strong>输出:</strong>
true
<strong>解释:</strong>
第 1 行和第 1 列都是 &quot;abcd&quot;
第 2 行和第 2 列都是 &quot;bnrt&quot;
第 3 行和第 3 列都是 &quot;crm&quot;
第 4 行和第 4 列都是 &quot;dt&quot;
因此,这是一个有效的单词方块。
</pre>
<p>&nbsp;</p>
<p><strong>示例 3</strong></p>
<pre><strong>输入:</strong>
[
&quot;ball&quot;,
&quot;area&quot;,
&quot;read&quot;,
&quot;lady&quot;
]
<strong>输出:</strong>
false
<strong>解释:</strong>
第 3 行是 &quot;read&quot; ,然而第 3 列是 &quot;lead&quot;
因此,这 <strong>不是</strong> 一个有效的单词方块。
</pre>
<p>&nbsp;</p>
<div><div>Related Topics</div><div><li>数组</li><li>矩阵</li></div></div><br><div><li>👍 31</li><li>👎 0</li></div>