> For the complete documentation index, see [llms.txt](https://hao-fu-1.gitbook.io/oj/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hao-fu-1.gitbook.io/oj/string/valid-word-square.md).

# Valid Word Square

https\://leetcode.com/problems/valid-word-square/description/

> Given a sequence of words, check whether it forms a valid word square.
>
> A sequence of words forms a valid word square if the kth row and column read the exact same string, where 0 â‰¤ k < max(numRows, numColumns).
>
> Note:
>
> The number of words given is at least 1 and does not exceed 500.
>
> Word length will be at least 1 and does not exceed 500.
>
> Each word contains only lowercase English alphabet a-z.
>
> Example 1:
>
> Input:
>
> \[
>
> "abcd",
>
> "bnrt",
>
> "crmy",
>
> "dtye"
>
> ]
>
> Output:
>
> true
>
> Explanation:
>
> The first row and first column both read "abcd".
>
> The second row and second column both read "bnrt".
>
> The third row and third column both read "crmy".
>
> The fourth row and fourth column both read "dtye".
>
> Therefore, it is a valid word square.

## Thoughts

第i行第j个元素要和第i列第j个元素相同, 不满足的情况为i >= 列上限, j >= 行上限或相应元素不相同.

## Code

```java
 class Solution {
     public boolean validWordSquare(List<String> words) {
         for (int i = 0; i < words.size(); i++) {
             for (int j = 0; j < words.get(i).length(); j++) {
                 if (j == words.size() || words.get(j).length() <= i || words.get(i).charAt(j) != words.get(j).charAt(i)) {
                     return false;
                 }
             }
         }

         return true;
     }
 }
```

## Analysis

时间复杂度O(MN).
