题目的意思还是挺好了解的,解决的思路也很简略:因为只有一组差值和其余的不一样,所以最简略的方法能够通过前三组数据确定雷同的差值数据是什么,而后进行判断解决。
1)如果前三组差值数组都相等,那么和以后的差值数组不相等的就是后果;
2)如果前三组数据有和其余两组不相等的,那么就是最终的后果,间接返回即可;
class Solution {public: string oddString(vector<string>& words) { int n = words.size(); int slen=words[0].size(); vector<int> diff(slen-1, 0); for(int i=1; i<slen; i++){ diff[i-1] = words[0][i] - words[0][i-1]; } bool flag = true; int index=0; for(int i=1; i<slen; i++){ if(words[1][i] - words[1][i-1] != diff[i-1]){ flag = false; index=i; break; } } if(!flag){ return words[2][index] - words[2][index-1] == diff[index-1] ? words[1] : words[0]; }else{ for(int i=2; i<n; i++){ for(int j=1; j<slen; j++){ if(words[i][j] - words[i][j-1] != diff[j-1]){ return words[i]; } } } return ""; } }};