给定一个单词序列,检查它是否构成一个有效单词广场。
一个有效的单词广场应满足以下条件:对于满足0≤k<max(numRows numColumns)的k,第k行和第k列对应的字符串应该相同,。
样例
样例1
输入:
[
"abcd",
"bnrt",
"crmy",
"dtye"
]
输出: true
解释:
第一行和第一列都是“abcd”。
第二行和第二列都是“bnrt”。
第三行和第三列都是“crmy”。
第四行和第四列都是“dtye”。
因此,这是一个有效的单词广场.
样例2
输入:
[
"abcd",
"bnrt",
"crm",
"dt"
]
输出: true
解释:
第一行和第一列都是“abcd”。
第二行和第二列都是“bnrt”。
第三行和第三列都是“crm”。
第四行和第四列都是“dt”。
因此,这是一个有效的单词广场.
样例3
输入:
[
"ball",
"area",
"read",
"lady"
]
输出: false
解释:
第三行是 "read" 但是第三列是 "lead".
因此,这不是一个有效的单词广场.
注意事项
给定的单词数量至少为1,且不超过500。
单词长度至少为1,不超过500。
每个单词只包含小写英文字母a-z。
思路:找到每一行的长度,然后只要对应words[i][j]!=words[j][i],则可以直接返回false。
class Solution {
public:
/**
* @param words: a list of string
* @return: a boolean
*/
bool validWordSquare(vector<string> &words) {
// Write your code here
int len=words.size();
bool judge=true;
for (int i = 0; i < len; i++) {
/* code */
int wlen=words[i].size();
for (int j = 0; j < wlen; j++) {
/* code */
if(words[i][j]!=words[j][i]) {judge=false;break;}
}
if(!judge) break;
}
return judge;
}
};