/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* getKthFromEnd(ListNode* head, int k) {
ListNode* p=head;
ListNode* q=head;
while(k-1>0)
{
q=q->next;
k--;
}
while(q->next!=NULL)
{
p=p->next;
q=q->next;
}
return p;
}
};
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* rotateRight(ListNode* head, int k) {
ListNode* r=head;
ListNode* q=head;
int len=0;
while(r!=NULL)
{
r=r->next;
len++;
}
if(len==0)return NULL;
k=k%len;
ListNode* p=head;
while(k>0)
{
q=q->next;
k--;
}
while(q->next!=NULL)
{
p=p->next;
q=q->next;
}
q->next=head;
head=p->next;
p->next=NULL;
return head;
}
};
class Solution {
public:
bool isLongPressedName(string name, string typed) {
int i=0,j=0,k=0;
string news;
int n=name.length(),m=typed.length();
if(name[0]==typed[0])
{
news+=typed[j];
i++;
j++;
k++;
}
else{return false;}
while(j<m)
{
while(name[i]!=typed[j]&&typed[j]==typed[j-1])
{
j++;
}
if(name[i]!=typed[j])return false;
if(name[i]==typed[j]&&j<m)
{
news+=typed[j];
i++;
j++;
k++;
}
}
cout<<news<<endl;
return name==news;
}
};