Difference between revisions of "Palindroma"
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
| m | m | ||
| Line 20: | Line 20: | ||
| Domenique ha proposto questa funzione in C: | Domenique ha proposto questa funzione in C: | ||
| − | <syntaxhighlight lang=" | + | <syntaxhighlight lang="C"> | 
| int palindroma(char *pnt){ | int palindroma(char *pnt){ | ||
| Line 39: | Line 39: | ||
| altre proposte? | altre proposte? | ||
| + | Cosa ne dite di questa soluzione? | ||
| + | <syntaxhighlight lang="C"> | ||
| + | #include <stdio.h> | ||
| + | #include <string.h> | ||
| + | |||
| + | int palindroma(char *s) { | ||
| + |         char *t; | ||
| + |         for (t=s+(strlen(s)-1); s < t; s++, t--) | ||
| + |                 if (*t != *s) return 0; | ||
| + |         return 1; | ||
| + | } | ||
| + | |||
| + | #ifdef DEBUGMAIN | ||
| + | int main(int argc, char *argv[]) | ||
| + | { | ||
| + |         if (argc < 2) return -1; | ||
| + |         printf("%s: %se\' una stringa palindroma\n",argv[1],palindroma(argv[1])?"":"non "); | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | per compilare il main di prova chiamate il compilatore con il comando seguente | ||
| + |     gcc -DDEBUGMAIN -o pali pali.c | ||
| + | (ovviamente mutatis mutandis, se il vostro sorgente non si chiama pali come il mio) | ||
Revision as of 11:26, 29 October 2013
Visto che qui non succede nulla, inizio io:
Ecco una implementazione in python3... chi mi propone altre soluzioni alternative?
#!/usr/bin/env python3
def palindrome(x):
  if len(x) < 2: return True
  else:
    if x[0] == x[-1]:
      return palindrome(x[1:-1])
    else:
      return False
if __name__ == "__main__":
  s=input("type in a string: ")
  print("is {} palindrome? {}".format(s,"true" if palindrome(s) else "false"))
Domenique ha proposto questa funzione in C:
int palindroma(char *pnt){
	int dim=strlen(pnt)-1;
	int l=dim/2;
	int k;
	for(k=0;k<=l;k++)
	{ 
		if(pnt[k]!=pnt[dim])
			return 0;
		else
			dim--;	  						
	}
        return 1;
}
altre proposte? Cosa ne dite di questa soluzione?
#include <stdio.h>
#include <string.h>
int palindroma(char *s) {
        char *t;
        for (t=s+(strlen(s)-1); s < t; s++, t--)
                if (*t != *s) return 0;
        return 1;
}
#ifdef DEBUGMAIN
int main(int argc, char *argv[])
{
        if (argc < 2) return -1;
        printf("%s: %se\' una stringa palindroma\n",argv[1],palindroma(argv[1])?"":"non ");
}
per compilare il main di prova chiamate il compilatore con il comando seguente
gcc -DDEBUGMAIN -o pali pali.c
(ovviamente mutatis mutandis, se il vostro sorgente non si chiama pali come il mio)